Ich versuche, Zeilen aus einer Tabelle in Quell- und Ziel-DB-Tabellen abzugleichen. Ich kann die Zeile löschen, die in der Ziel-Tabelle vorhanden ist und nicht in der Quell-Tabelle vorhanden ist. Allerdings muss ich auch die davon abhängigen Zeilen in anderen Tabellen innerhalb der Ziel-DB löschen. Gibt es eine Möglichkeit, dies innerhalb eines Merge zu erreichen.
Die Merge-Anweisung sieht wie folgt aus.
MERGE Tabelle1 as [Ziel]
using (select A,B,C,D,E,
F,G,H,I,J,K,L
from Source.dbo.Table1 as al
where al.H is null) AS [Quelle]
ON ([Ziel].A = [Quelle].B)
WHEN NOT MATCHED By TARGET THEN
INSERT(C,D,E,F,G)
VALUES([Quelle].C,[Quelle].D,[Quelle].E,[Quelle].F,[Quelle].G);
WHEN NOT MATCHED BY SOURCE THEN
DELETE;
Siehe die folgende Abbildung.
Source
DB0.dbo.Table1
ID IDID NAME
1 6 xyz
2 3 yzx
3 4 abc
4 5 lym
5 1 tes
Dest
Table1
ID IDID Name
1 6 xyz
2 3 yzx
3 4 abc
4 5 lym
5 1 tes
6 2 ads
Dependent Table
DB1.Dbo,Table2
IDID VALUE
1 BST
2 PL
3 NO
4 SS
5 DR
6 CR
7 LM
Im Voraus vielen Dank.