2016-06-14 2 views
0

Könnte mir jemand beim Schreiben einer MS SQL-Abfrage helfen, Zeilen nur dann von einer Tabelle in eine andere zu kopieren, wenn table1.Col1! = Table2.col1.Kopiere Daten von einer Tabelle in eine andere, wenn die zweite Tabelle diese Daten nicht bereits enthält

Ich mache ein SSIS-Paket, um dieses Verfahren zu machen, also wäre ein Ansatz dazu sehr hilfreich.

+0

Mögliche Duplikate von [SQL Server einfügen, wenn nicht Best Practice vorhanden] (http://stackoverflow.com/questions/5288283/sql-server-insert-if-not-exists-best-practice) –

+0

Haben Sie etwas versucht ? Bitte zeigen Sie Ihre Bemühungen, damit wir Ihnen helfen können. – Denn

Antwort

1

einfachste Weg (für mich): optional join (LEFT OUTER JOIN) in die Zieltabelle (Tabelle, in denen Sie laden) und WHERE verwenden, um zu bestätigen, dass die Verbindung fehlschlägt:

INSERT INTO dbo.MYTARGETTABLE (TARG_COL1, TARG_COL2) 
SELECT SRC.[SRC_COL1], SRC.[SRC_COL2] 
FROM dbo.MYSOURCETABLE SRC 
    LEFT OUTER JOIN dbo.MYTARGETTABLE TARG 
     ON TARG.[TARG_COL1] = SRC.[SRC_COL1] 
WHERE SRC.[SRC_COL1] IS NOT NULL 
----this column is only null if the join failed: 
AND TARG.[TARG_COL1] IS NULL 

Dies setzt natürlich voraus, dass in den Spalten, denen Sie beitreten, keine gültigen NULL-Werte vorhanden sind.

Verwandte Themen