Elaborazione di inserimenti, aggiornamenti ed eliminazioniProcess Inserts, Updates, and Deletes

Nel flusso di dati di un pacchetto Integration Services che esegue un caricamento incrementale dei dati delle modifiche la seconda attività consiste nel separare inserimenti, aggiornamenti ed eliminazioni.In the data flow of an Integration Services package that performs an incremental load of change data, the second task is to separate inserts, updates, and deletes. Sarà quindi possibile utilizzare i comandi appropriati per applicarli alla destinazione.Then, you can use appropriate commands to apply them to the destination.

Nota

La prima attività nella progettazione del flusso di dati di un pacchetto che esegue un caricamento incrementale dei dati delle modifiche consiste nel configurare il componente di origine che esegue la query per il recupero dei dati delle modifiche.The first task in designing the data flow of a package that performs an incremental load of change data is to configure the source component that runs the query that retrieves the change data. Per altre informazioni su questo componente, vedere Recupero e comprensione dei dati delle modifiche.For more information about this component, see Retrieve and Understand the Change Data. Per una descrizione del processo complessivo di creazione di un pacchetto in cui viene eseguito un caricamento incrementale dei dati delle modifiche, vedere Change Data Capture (SSIS).For a description of the overall process for creating a package that performs an incremental load of change data, see Change Data Capture (SSIS).

Associazione di valori descrittivi per separare inserimenti, aggiornamenti ed eliminazioniAssociating Friendly Values to Separate Inserts, Updates, and Deletes

Nella query di esempio che recupera i dati delle modifiche la funzione cdc.fn_cdc_get_net_changes_restituisce solo la colonna di metadati denominata __$operation.In the example query that retrieves change data, the cdc.fn_cdc_get_net_changes_ function returns only the column of metadata named __$operation. Questa colonna di metadati contiene un valore ordinale che indica l'operazione che ha provocato la modifica.This metadata column contains an ordinal value that indicates which operation caused the change.

Nota

Per altre informazioni sulla query che usa chiamate alla funzione cdc.fn_cdc_get_net_changes_, vedere Creazione della funzione per il recupero dei dati delle modifiche.For more information about the query that uses calls the cdc.fn_cdc_get_net_changes_ function, see Create the Function to Retrieve the Change Data.

La creazione di una corrispondenza tra un valore ordinale e la relativa operazione non è altrettanto semplice quanto l'utilizzo di un tasto di scelta per l'operazione.Matching an ordinal value to its corresponding operation is not as easy as using a mnemonic of the operation. "D" e "I", ad esempio, possono rappresentare in modo semplice rispettivamente un'operazione di eliminazione e un'operazione di inserimento.For example, 'D' can easily represent a delete operation and 'I' represent an insert operation. La query di esempio creata nell'argomento Creazione della funzione per il recupero dei dati delle modificheesegue questa conversione da un valore ordinale a un valore stringa descrittivo restituito in una nuova colonna.The example query that was created in the topic, Creating the Function to Retrieve the Change Data, makes this conversion from an ordinal value to a friendly string value that is returned in a new column. Nel segmento di codice seguente viene illustrata tale conversione:The following segment of code shows this conversion:

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

Configurazione di una trasformazione Suddivisione condizionale per indirizzare inserimenti, aggiornamenti ed eliminazioniConfiguring a Conditional Split Transformation to Direct Inserts, Updates, and Deletes

Per indirizzare righe di dati delle modifiche a uno tra tre output diversi, la trasformazione Suddivisione condizionale rappresenta la soluzione ideale.To direct rows of change data to one of three outputs, the Conditional Split transformation is ideal. La trasformazione controlla semplicemente il valore della colonna CDC_OPERATION in ogni riga e determina se la modifica è un inserimento, un aggiornamento o un'eliminazione.The transformation just checks the value of the CDC_OPERATION column in each row and determines whether that change was an insert, update, or delete.

Nota

La colonna CDC_OPERATION contiene un valore stringa descrittivo derivato dal valore numerico presente nella colonna __$operation .The CDC_OPERATION column contains a friendly string value derived from the numeric value in the __$operation column.

Per suddividere inserimenti, aggiornamenti ed eliminazioni per l'elaborazione tramite una trasformazione Suddivisione condizionaleTo split inserts, updates, and deletes for processing by using a Conditional Split transformation

  1. Nella scheda Flusso di dati aggiungere una trasformazione Suddivisione condizionale.On the Data Flow tab, add a Conditional Split transformation.

  2. Connettere l'output dell'origine OLE DB alla trasformazione Suddivisione condizionale.Connect the output of the OLE DB source to the Conditional Split transformation.

  3. In Editor trasformazione Suddivisione condizionaleimmettere le tre righe seguenti nel riquadro inferiore per designare i tre output:In the Conditional Split Transformation Editor, in the lower pane of the editor, enter the following three lines to designate the three outputs

    1. Immettere una riga con la condizione CDC_OPERATION == "I" per indirizzare le righe inserite all'output per gli inserimenti.Enter a line with the condition CDC_OPERATION == "I" to direct inserted rows to the output for inserts.

    2. Immettere una riga con la condizione CDC_OPERATION == "U" per indirizzare le righe aggiornate all'output per gli aggiornamenti.Enter a line with the condition CDC_OPERATION == "U" to direct updated rows to the output for updates.

    3. Immettere una riga con la condizione CDC_OPERATION == "D" per indirizzare le righe eliminate all'output per le eliminazioni.Enter a line with the condition CDC_OPERATION == "D" to direct deleted rows to the output for deletes.

Passaggio successivoNext Step

Dopo avere suddiviso le righe per l'elaborazione, il passaggio successivo consiste nell'applicare le modifiche alla destinazione.After you split the rows for processing, the next step is to apply the changes to the destination.

Argomento successivo: Applicazione delle modifiche alla destinazioneNext topic: Apply the Changes to the Destination

Vedere ancheSee Also

Trasformazione Suddivisione condizionale Conditional Split Transformation
Dividere un set di dati tramite la trasformazione Suddivisione condizionaleSplit a Dataset by Using the Conditional Split Transformation