如何通过命令打开SQL Server的触发器嵌套触发功能

请教高手,是否有存储过程能打开SQL Server的触发器嵌套触发功能。

---------------------------------------------------------------

触发器有两种递归形式:

直接递归
即触发器激发并执行一个操作,而该操作又使同一个触发器再次激发。例如,一应用程序更新了表 T3,从而引发触发器 Trig3。Trig3 再次更新表 T3,使触发器 Trig3 再次被引发。

间接递归
即触发器激发并执行一个操作,而该操作又使另一个表中的某个触发器激发。第二个触发器使原始表得到更新,从而再次引发第一个触发器。例如,一应用程序更新了表 T1,并引发触发器 Trig1。Trig1 更新表 T2,从而使触发器 Trig2 被引发。Trig2 转而更新表 T1,从而使 Trig1 再次被引发。

当将 RECURSIVE_TRIGGERS 数据库选项设置为 OFF 时,仅防止直接递归。若要也禁用间接递归,请将 nested triggers 服务器选项设置为 0。

用这个语句设置允许直接递归:
ALTER DATABASE pubs SET RECURSIVE_TRIGGERS on
或者用这个语句允许或禁止递归:
EXEC sp_configure 'nested triggers',0 RECONFIGURE WITH OVERRIDE
--禁止;
EXEC sp_configure 'nested triggers',1 RECONFIGURE WITH OVERRIDE
--允许

其中RECONFIGURE WITH OVERRIDE参数指定该修改立即生效。

Published At
Categories with 数据库类
Tagged with
comments powered by Disqus