Sql 使用“合并”从依赖表中删除值

Sql 使用“合并”从依赖表中删除值,sql,sql-server-2008,Sql,Sql Server 2008,我试图在源数据库表和目标数据库表中匹配表中的行。我可以删除dest表中存在而源表中不存在的行。 但是,我还需要删除dest db中其他表中的依赖行。是否有一种方法可以在合并中实现这一点 Merge语句如下所示 MERGE Table1 as [Target] 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 [Source] ON ([Target].A =

我试图在源数据库表和目标数据库表中匹配表中的行。我可以删除dest表中存在而源表中不存在的行。 但是,我还需要删除dest db中其他表中的依赖行。是否有一种方法可以在合并中实现这一点

Merge语句如下所示

MERGE Table1 as [Target]

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 [Source]

ON ([Target].A = [Source].B)

WHEN NOT MATCHED By TARGET THEN
    INSERT(C,D,E,F,G)
    VALUES([Source].C,[Source].D,[Source].E,[Source].F,[Source].G);
WHEN NOT MATCHED BY SOURCE THEN
    DELETE;
见下图

 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

提前感谢。

按照尼纳德·齐夫科维奇的建议使用级联删除

以下是一些相关链接,提供了一些可能的答案:


请发布您尝试过的
MEREGE
语句。您可以(应该)在dest db中的外键上使用
ON DELETE CASCADE
选项来处理相关行。谢谢Nenad Zivkovic,我正在将select中的值捕获到临时表中,然后编写单独的删除脚本,我不能用级联上的delete触发器更新表,因为这样我就必须重新生成我的dbml。。。我有很多表格要更新。但是的,我同意删除级联可以很好地工作,我会期待重新工作后的高峰期。谢谢,tjm6f4,我正在将select中的值捕获到一个临时表中,然后编写单独的删除脚本,我无法使用级联上的delete触发器更新表,因为这样我就必须重新生成我的dbml。。。我有很多表格要更新。但是的,我同意删除级联可以很好地工作,我会期待重新工作后的高峰期。谢谢,没问题!祝你好运!