我有一个审核触发器,可以自动将所有内容更新的时间和更新的用户放在我所有表中的字段中。我有另一组触发器,它们从事件表的更新中写入事件信息。问题是当有人更新某些内容时,由于第一个触发器,事件信息会被触发两次。如何抑制重复的条目?
答案 0 :(得分:1)
我猜你有两个选择:
将两组触发器合并为一个。
或者,每个数据库设置允许禁用触发器的递归触发。
答案 1 :(得分:1)
查看TRIGGER_NESTLEVEL函数。它返回当前触发器嵌套级别。您可以检查以防止重复。
答案 2 :(得分:1)
如果您有足够的权限(某些虚拟主机不允许您这样做),您也可以一起关闭嵌套触发器。有一个名为sp_configure的存储过程(Sql 2005),允许您修改服务器的配置。下面的语句禁用嵌套触发器,这将触发触发器触发另一个触发器。
exec sp_configure'嵌套触发器',0
答案 3 :(得分:0)
禁用触发器触发行为也可以在SS2005中完成,方法是进入SS Mgt Studio并选择相关服务器的图标,右键单击,然后选择“属性”。然后从左侧列表中选择“高级”,并将“允许触发器触发其他人”的值设置为“假”。