2013-02-20 270 views
0
CREATE table1; 
CREATE table2; 

CREATE trigger1 ON table1 AFTER DELETE AS DELETE FROM table1; 
CREATE trigger2 ON table1 AFTER DELETE AS DELETE FROM table2; 

DELETE FROM table1 

最后一个查询将触发trigger1trigger2SQL Server:触发器触发

是否trigger1再次触发trigger2(如果设置了数据库默认选项)?

回答

1

如果选项RECURSIVE_TRIGGERS设置为on,配置“嵌套触发器”设置为1,然后再是射击TRIGGER1会导致两个TRIGGER1和触发2再次,然后再等火起来,以后触发器深32级。否则不会发生递归激发。

+0

我很困惑,因为第一个是递归触发器,第二个不是 – Mansoor 2013-02-20 18:18:32

+0

默认选项是 - 递归触发器设置为OFF并且嵌套触发器设置为ON ...在这种情况下会是什么? – Mansoor 2013-02-20 19:11:29

+0

第二个触发器不递归并不重要。每次运行table1上的删除时,两个触发器都会触发。如果我将递归触发器设置为OFF并将嵌套触发器设置为ON,就能正确理解事件,则不应该递归。但如果我是你,我会写一个测试。将trigger2插入到table2中而不是删除,以便可以看到它被触发多少次。 – 2013-02-21 14:28:46