2017-10-12 1 views
0
verschmelzen

Ich versuche, eine Prozedur zu schreiben, in der ich eine Anzahl von Staging + Zieltabellen mit jeweils unterschiedlichen Spaltennamen und Primärschlüssel dynamisch zusammenführen kann.Dynamisch die beiden Tabellen mit Primärschlüssel

Gibt es eine Möglichkeit zum Zusammenführen durch Extrahieren der Primärschlüsseleinschränkung?

Ich sah eine dynamische SQL-Anweisung zu tun, die so aussah:

'MERGE 
    ' + @DestinationTable + ' Dest 
USING 
    ' + @StagingTable ' Staging 
ON 
    ' + @JoinConditions + ' 
WHEN NOT MATCHED THEN 
    INSERT INTO 
     Dest 
    SELECT 
     * 
    FROM 
     Staging 
WHEN MATCHED THEN 
    UPDATE 
     Dest 
    SET 
     ' + @UpdateStatement 

Wo @DestinationTable ein String-Parameter mit dem Tabellennamen ist, @StagingTable gleich ist, @JoinConditions ist eine Zeichenfolge, die das Format ist

Staging.ColumnName = Dest.ColumnName 

für jede Schlüsselspalte und @UpdateStatement hat das gleiche Format außer mit Nicht-Schlüsselspalten.

Es sieht nicht hübsch aus, aber so sehe ich es funktioniert.

Antwort

1

Das Generieren von MERGE-Anweisungen ist eine Grundvoraussetzung für den BI/DW-Bereich, da es eine allgemeine Anforderung ist.

Es gibt Lösungen, die eine gespeicherte Proc- und/oder Merge-Anweisungen generieren, some will also write the SSIS packages. Dort

In diesem Sinne werde ich hier keine Lösung schreiben.
ich heruntergeladen ein letztes Mal, wenn ich es

benötigen

Sie können ein Gefühl dafür bekommen, wie häufig diese Anforderung durch „erzeugen Merge Script SQL Server“

Zum Beispiel

+0

Danke, ich bin eigentlich ein neuer BI-Entwickler, also lernt das alles für mich. Schätzen Sie den Druck in die richtige Richtung. – TomNash

Verwandte Themen