with example ejemplo derivada condicional columna column sql-server database ssis relational-database

sql server - example - ¿Cómo vaciar mi tabla de destino antes de insertar nuevos registros en SSIS?



division condicional ssis (4)

Uso SSIS para generar y transformar nuevos datos para su uso posterior en un nuevo sistema. Tengo un problema cada vez que ejecuto mi paquete SSIS, sigue insertando nuevos registros en mis tablas de destino.

¿Cómo puedo vaciar mi tabla de destino (/ Destino de OLE DB) y luego insertar los registros recién generados?

Actualmente, la solución para este problema es realizar una delete from DestTable antes de ejecutar mi paquete.


Crear una tarea de ejecución de SQL. Haz que corra primero. Para el sqlstatment hacer.

Truncate table DestTable

Usar la tabla truncada es mejor que borrar, ya que ignora todos los índices y simplemente elimina todo.

Para un poco de información de fondo. Intentaré explicar por qué debería usar la tabla truncada en lugar de la tabla de eliminación. Eliminar tabla es una operación basada en filas, esto significa que cada fila se elimina. La tabla truncada es una operación de la página de datos, toda la página de datos está deslegada. Si tiene una tabla con un millón de filas, será mucho más rápido truncar la tabla que utilizar una declaración de eliminación de tablas.


Ponga su declaración de eliminación en una Execute SQL Task . Entonces haz que sea el primer componente de tu flujo. El componente se ve algo como esto:


Una advertencia sobre el uso de la tabla Truncate, se ejecuta mejor por las razones indicadas. Sin embargo, también requiere privilegios adicionales para su cuenta del sistema SSIS. Debe asegurarse de que estén disponibles en Producción, de lo contrario tendrá que usar Eliminar.

Referencia de MSDN


necesitas usar esto

truncate table table_name

esto vacía la mesa