2010-07-14 88 views
0

假设表A有两个子表,B和C在A-B之间级联删除,在A-C之间级联删除。SQL Server多级联序列

当在A中删除一行时,B和C中的匹配行被删除。

SQL Server如何确定级联的顺序?我需要的是在A-B级联删除触发之前触发A-C级联删除。

我知道我可以用触发器做到这一点,但我不想,除非我绝对必须这样做。

+1

您不需要CASCADE DELETE或触发器 - 只需在存储过程中处理正确的顺序。 – 2010-07-14 00:04:29

+0

使用级联删除,您无法控制它们的执行顺序,但您也不能控制执行相同类型的多个触发器的顺序。 – 2010-07-14 03:12:54

回答

4

如果顺序非常重要,这是一个数据库设计的异味,它也指出了一个事实,即您可能不应该使用级联删除来执行此数据完整性操作。

+2

+1如果你不能开火并忘记,不要开火。 – 2010-07-14 00:59:20