【发布时间】:2011-09-14 22:02:25
【问题描述】:
我有如下外键的表:
Table1A
|
|- Table2A3A
Table1B
|
|- Table2B
|
|- Table2A3A
(即Table2A3A引用Table1A,Table2B引用Table1B。)
我想创建一个触发器,以便每当表 Table1A、Table1B 或 Table2B 中的任何内容被删除时,Table2A3A 中引用已删除行的内容也会被删除。
我问是因为如果我尝试在 SQL Server 中添加 on delete cascade,它会返回 Introducing FOREIGN KEY constraint on table 'Table2A3A' may cause cycles or multiple cascade paths。
这种触发器的 SQL 代码是什么?
编辑:
对不起,我看错了我的表格:
Table1A
|
|- Table2A3A
|
|- Table2B
|
|- Table2A3A
(即Table2A3A引用Table1A,Table2B引用Table1A。)
【问题讨论】:
-
为什么要使用级联删除?这些都是坏消息......只需创建一个存储过程,从要删除的表中删除行。您将拥有更多控制权,可以实现错误处理等。
标签: sql-server-2008 triggers foreign-keys cascading-deletes