Processando inserções, atualizações e exclusões

No fluxo de dados de um pacote Integration Services, que realiza uma carga incremental de dados de alteração, a segunda tarefa serve para separar inserções, atualizações e exclusões. Em seguida, você pode usar comandos apropriados para aplicá-los ao destino.

ObservaçãoObservação

A primeira tarefa na criação do fluxo de dados de um pacote que realize uma carga incremental de dados de alteração é configurar o componente de origem que executa a consulta que recupera os dados de alteração. Para obter mais informações sobre esse componente, consulte Recuperando e compreendendo os dados de alteração. Para obter uma descrição do processo geral para criar um pacote que realiza uma carga incremental de dados de alteração, consulte Melhorando cargas incrementais com Change Data Capture.

Para ver exemplos completos que demonstram o uso do Change Data Capture em pacotes, consulte os exemplos do Integration Services no Codeplex.

Associando valores amigáveis para separar inserções, atualizações e exclusões

Na consulta de exemplo que recupera dados de alteração, a função cdc.fn_cdc_get_net_changes_<capture_instance> retorna apenas a coluna de metadados chamada __$operation. Esta coluna de metadados contém um valor ordinal que indica qual operação causou a alteração.

ObservaçãoObservação

Para obter mais informações sobre a consulta que usa chama a função cdc.fn_cdc_get_net_changes_<capture_instance>, consulte Criando a função para recuperar os dados de alteração.

Corresponder um valor ordinal a sua operação correspondente não é tão fácil quanto usar um mnemônico da operação. Por exemplo, 'D' pode representar facilmente uma operação de exclusão e 'I' representar uma operação de inserção. A consulta de exemplo criada no tópico, Criando a função para recuperar os dados de alteração, faz essa conversão de um valor ordinal para um valor de cadeia de caracteres amigável que retorna uma nova coluna. O seguinte segmento de código mostra esta conversão:

    select 
        ...
        case __$operation
            when 1 then 'D'
            when 2 then 'I'
            when 4 then 'U'
            else null
         end as CDC_OPERATION

Configurando uma transformação de divisão condicional para direcionar inserções, atualizações e exclusões

Para direcionar linhas de dados de alteração para uma de três saídas, a transformação de Divisão Condicional é ideal. A transformação apenas verifica o valor da coluna CDC_OPERATION em cada linha e determina se essa alteração foi uma inserção, atualização ou exclusão.

ObservaçãoObservação

A coluna de CDC_OPERATION contém um valor da cadeia de caracteres amigável derivado do valor numérico na coluna __$operation.

Para dividir inserções, atualizações e exclusões por processamento usando uma transformação de Divisão Condicional

  1. Na guia Fluxo de Dados, adicione uma transformação de Divisão Condicional.

  2. Conecte a saída da origem OLE DB à transformação de Divisão Condicional.

  3. No Editor de Transformação de Divisão Condicional, no painel inferior do editor, digite as três linhas a seguir para designar as três saídas

    1. Digite uma linha com a condição CDC_OPERATION == "I" para direcionar as linhas inseridas para a saída para inserções.

    2. Digite uma linha com a condição CDC_OPERATION == "U" para direcionar as linhas atualizadas para a saída para atualizações.

    3. Digite uma linha com a condição CDC_OPERATION == "D" para direcionar as linhas excluídas para a saída para exclusões.

Próxima Etapa

Após você dividir as linhas por processamento, a próxima etapa é aplicar as alterações ao destino.

Próximo tópico:Aplicando as alterações ao destino

Ícone do Integration Services (pequeno) Fique atualizado com o Integration Services

Para obter os mais recentes downloads, artigos, exemplos e vídeos da Microsoft, bem como soluções selecionadas da comunidade, visite a página Integration Services no MSDN ou TechNet:

Para receber uma notificação automática das atualizações, assine os feeds RSS disponíveis na página.