首页 > 解决方案 > 从SQL中的多个表中级联删除行

问题描述

我有3个这样的表:

Table3 上没有外键。我将 Table1 和 Table2 的行插入到 Table3 中,如下所示:

ID 实体名称 实体 ID 其他列
1 表格1 1 ...
2 表2 1 ...
3 表2 2 ...

当我从 Table1 或 Table2 中删除一行时,如何将它从 Table3 中级联?

标签: sql-servertsql

解决方案


您可以在每个表上创建一个delete trigger以从 table3 中删除匹配的行,例如:

create trigger Table1Delete on dbo.table1
for delete 
as
if @@RowCount = 0 return
set nocount on

delete from t3
from deleted d
join table3 t3 on t3.EntityName='Table1' and d.Id=t3.EntityId

还有一个类似的Table2


推荐阅读