Compartir a través de


Procesar inserciones, actualizaciones y eliminaciones

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 acerca de este componente, vea Recuperar y describir datos de cambios. Para obtener una descripción del proceso general que permite crear un paquete que realiza una carga incremental de los datos modificados, vea Mejorar las cargas incrementales con la captura de datos modificados.

Para ver ejemplos completos de principio a fin que muestran el uso de la captura de datos modificados en paquetes, vea los ejemplos de Integration Services en Codeplex.

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 utiliza llamadas a la función cdc.fn_cdc_get_net_changes_<capture_instance>, vea Crear la función para recuperar los datos modificados.

Hacer coincidir un valor ordinal con su operación correspondiente no es tan fácil como utilizar una tecla de acceso para la 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 modificados realiza 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 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 un valor de cadena descriptivo derivado 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

  1. En la ficha Flujo de datos, agregue una transformación División condicional.

  2. Conecte la salida del origen de OLE DB a la transformación División condicional.

  3. 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.

    1. Para las inserciones, escriba una línea con la condición CDC_OPERATION == "I" que dirija las filas insertadas a la salida.

    2. Para las actualizaciones, escriba una línea con la condición CDC_OPERATION == "U" que dirija las filas actualizadas a la salida.

    3. Para las eliminaciones, escriba una línea con la condición CDC_OPERATION == "D" que dirija las filas eliminadas a la salida.

Paso siguiente

Una vez divididas las filas para su procesamiento, el paso siguiente consiste en aplicar los cambios en el destino.

Tema siguiente:Aplicar los cambios al destino

Icono de Integration Services (pequeño) Manténgase al día con Integration Services

Para obtener las más recientes descargas, artículos, ejemplos y vídeos de Microsoft, así como soluciones seleccionadas de la comunidad, visite la página de Integration Services en MSDN o TechNet:

Para recibir notificaciones automáticas de estas actualizaciones, suscríbase a las fuentes RSS disponibles en la página.