Verarbeiten von Einfügungen, Aktualisierungen und Löschungen

Im Datenfluss eines Integration Services-Pakets, das ein inkrementelles Laden von Änderungsdaten ausführt, werden mit dem zweiten Task Einfügungen, Aktualisierungen und Löschungen voneinander getrennt. Dann können Sie entsprechende Befehle verwenden, um sie für das Ziel zu übernehmen.

HinweisHinweis

Der erste Task beim Entwerfen des Datenflusses eines Pakets, das ein inkrementelles Laden von Änderungsdaten ausführt, ist die Konfiguration der Quellkomponente, die die Abfrage ausführt, bei der die Änderungsdaten abgerufen werden. Weitere Informationen zu dieser Komponente finden Sie unter Abrufen und Verstehen der Änderungsdaten. Eine Beschreibung des Gesamtprozesses zur Erstellung eines Pakets, das ein inkrementelles Laden von Änderungsdaten ausführt, finden Sie unter Verbessern des inkrementellen Ladens mit Change Data Capture.

Vollständige End-to-End-Beispiele zum Veranschaulichen der Verwendung von Change Data Capture in Paketen finden Sie unter Integration Services und Codeplex.

Zuordnen von benutzerfreundlichen Werten zur Trennung von Einfügungen, Aktualisierungen und Löschungen

In der Beispielabfrage, bei der Änderungsdaten abgerufen werden, gibt die cdc.fn_cdc_get_net_changes_<capture_instance>-Funktion nur die Metadatenspalte mit der Bezeichnung __$operation zurück. Diese Metadatenspalte enthält einen Ordinalwert, der angibt, welcher Vorgang die Änderung verursacht hat.

HinweisHinweis

Weitere Informationen zu der Abfrage, die die cdc.fn_cdc_get_net_changes_<capture_instance>-Funktion verwendet, finden Sie unter Erstellen der Funktion zum Abrufen der Änderungsdaten.

Das Abgleichen eines Ordinalwerts mit seinem entsprechenden Vorgang ist nicht so einfach wie die Verwendung eines mnemonischen Codes des Vorgangs. Zum Beispiel kann 'D' leicht einen Löschvorgang und 'I' einen Einfügevorgang darstellen. Die Beispielabfrage, die im Thema Creating the Function to Retrieve the Change Data erstellt wurde, nimmt diese Konvertierung von einem Ordinalwert in einen benutzerfreundlichen Zeichenfolgenwert vor, der in einer neuen Spalte zurückgegeben wird. Das folgende Codesegment zeigt diese Konvertierung:

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

Konfigurieren einer Transformation für bedingtes Teilen zur Weiterleitung von Einfügungen, Aktualisierungen und Löschungen

Die Transformation für bedingtes Teilen ist ideal zur Weiterleitung von Zeilen mit Änderungsdaten an eine von drei Ausgaben. Die Transformation überprüft den Wert der CDC_OPERATION-Spalte in jeder Zeile und bestimmt, ob diese Änderung eine Einfügung, Aktualisierung oder Löschung war.

HinweisHinweis

Die Spalte CDC_OPERATION enthält einen benutzerfreundlichen vom numerischen Wert in der __$operation-Spalte abgeleiteten Zeichenfolgenwert.

So teilen Sie Einfügungen, Aktualisierungen und Löschungen zur Verarbeitung durch Verwendung einer Transformation für bedingtes Teilen

  1. Fügen Sie auf der Registerkarte Datenfluss eine Transformation für bedingtes Teilen hinzu.

  2. Verbinden Sie die Ausgabe der OLE DB-Quelle mit der Transformation für bedingtes Teilen.

  3. Geben Sie im Transformations-Editor für bedingtes Teilen im unteren Bereich des Editors die folgenden drei Zeilen ein, um die drei Ausgaben zu bestimmen

    1. Geben Sie eine Zeile mit der Bedingung CDC_OPERATION == "I" ein, um eingefügte Zeilen an die Ausgabe für Einfügungen weiterzuleiten.

    2. Geben Sie eine Zeile mit der Bedingung CDC_OPERATION == "U" ein, um aktualisierte Zeilen an die Ausgabe für Aktualisierungen weiterzuleiten.

    3. Geben Sie eine Zeile mit der Bedingung CDC_OPERATION == "D" ein, um gelöschte Zeilen an die Ausgabe für Löschungen weiterzuleiten.

Nächster Schritt

Nachdem Sie die Zeilen zur Verarbeitung geteilt haben, besteht der nächste Schritt darin, die Änderungen auf das Ziel anzuwenden.

Nächstes Thema:Anwenden der Änderungen auf das Ziel

Integration Services (kleines Symbol) Bleiben Sie mit Integration Services auf dem neuesten Stand

Die neuesten Downloads, Artikel, Beispiele und Videos von Microsoft sowie ausgewählte Lösungen aus der Community finden Sie auf der Integration Services-Seite von MSDN oder TechNet:

Abonnieren Sie die auf der Seite verfügbaren RSS-Newsfeeds, um automatische Benachrichtigungen zu diesen Aktualisierungen zu erhalten.