Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a:SQL Server
SSIS Integration Runtime en Azure Data Factory
En el flujo de datos de un paquete de Integration Services que realiza una carga incremental de datos modificados, la segunda tarea consiste en separar las inserciones, las actualizaciones y las eliminaciones. A continuación, puede utilizar los comandos adecuados para aplicarlos en el destino.
Nota
La primera tarea para diseñar el flujo de datos de un paquete que realiza una carga incremental de datos modificados consiste en configurar el componente de origen que ejecuta la consulta que recupera dichos datos. Para obtener más información sobre este componente, vea Recuperar y describir datos modificados. Para obtener una descripción del proceso general de creación de un paquete que realiza una carga incremental de los datos modificados, vea Captura de datos modificados (SSIS).
Asociar valores descriptivos para separar las inserciones, las actualizaciones y las eliminaciones
En la consulta de ejemplo que recupera los datos modificados, la función cdc.fn_cdc_get_net_changes__<capture_instance> solo devuelve la columna de metadatos denominada __$operation. Esta columna de metadatos contiene un valor ordinal que indica la operación que ha causado el cambio.
Nota
Para obtener más información sobre la consulta que usa llamadas a la función cdc.fn_cdc_get_net_changes_<capture_instance>, vea Crear la función para recuperar los datos modificados.
Asociar un valor ordinal con la operación correspondiente no es tan fácil como usar un mnemónico de esa operación. Por ejemplo, 'D' puede representar fácilmente una operación de eliminación e 'I' una operación de inserción. La consulta de ejemplo que se creó en el tema, Crear la función para recuperar los datos modificadosrealiza esta conversión de un valor ordinal a un valor de cadena descriptivo que se devuelve en una nueva columna. El segmento de código siguiente muestra esta conversión:
select
...
case __$operation
when 1 then 'D'
when 2 then 'I'
when 4 then 'U'
else null
end as CDC_OPERATION
Configurar una transformación de división condicional para dirigir las inserciones, las actualizaciones y las eliminaciones
La transformación División condicional es idónea para dirigir filas de datos modificados a una de las tres salidas. La transformación comprueba el valor de la columna CDC_OPERATION en cada fila y determina si el cambio fue una inserción, una actualización o una eliminación.
Nota
La columna CDC_OPERATION contiene una cadena legible derivada del valor numérico de la columna __$operation.
Para dividir las inserciones, las actualizaciones y las eliminaciones para su procesamiento mediante una transformación División condicional
En la pestaña Flujo de datos, agregue la transformación de división condicional.
Conecte la salida del origen OLE DB a la transformación División condicional.
En el Editor de transformación División condicional, en el panel inferior del editor, escriba las tres líneas siguientes para designar las tres salidas.
Para las inserciones, escriba una línea con la condición
CDC_OPERATION == "I"que dirija las filas insertadas a la salida.Introduzca una línea con la condición
CDC_OPERATION == "U"para dirigir las filas actualizadas a la salida para actualizaciones.Para las operaciones de eliminación, introduzca una línea con la condición
CDC_OPERATION == "D"para dirigir las filas eliminadas a la salida de eliminaciones.