Wie lösche ich aus der Quelle mit MERGE-Befehl in SQL Server 2008?
Ich bin derzeit mit dem unten zusammenfassen-code zu migrieren Datum von der Quelle zum Ziel. Ich habe eine neue Forderung zu erweitern, den folgenden code zum löschen des Datensatzes aus der Quelle, wenn ein update/insert ausgeführt wird, die auf das Ziel. Ist das möglich, mithilfe von merge(alle Beispiele, die ich sehe im Netz hatte durchführen del/insert/update in das Ziel nicht auf die Quelle)
MERGE Target1 AS T
USING Source1 AS S
ON (T.EmployeeID = S.EmployeeID)
WHEN NOT MATCHED BY TARGET AND S.EmployeeName LIKE 'S%'
THEN INSERT(EmployeeID, EmployeeName) VALUES(S.EmployeeID, S.EmployeeName)
WHEN MATCHED
THEN UPDATE SET T.EmployeeName = S.EmployeeName
WHEN NOT MATCHED BY SOURCE AND T.EmployeeName LIKE 'S%'
THEN DELETE ;
InformationsquelleAutor der Frage nfa379 | 2011-09-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie mithilfe der output-Klausel zur Erfassung der geänderten/eingefügten Zeilen, um eine table-variable und verwenden, die mit einer delete-Anweisung nach der merge.
InformationsquelleAutor der Antwort Mikael Eriksson
Nette Antwort, aber Ihr code wird die Zeile löschen von Ihrem Ziel-Tabelle, hier ein Beispiel in wich Sie können löschen Sie die Zeilen aus deiner Quelle-Ziel ohne Auswirkungen auf die Ziel-Tabelle :
Ich hoffe das wird Ihnen helfen.
InformationsquelleAutor der Antwort Youssef DAOUI
können Sie auch folgenden code verwenden,
InformationsquelleAutor der Antwort hardik rawal