一个表sql server上有两个触发器

时间:2010-07-22 17:39:12

标签: sql-server triggers

我的数据库中有一个表有两个触发器。一个是插入触发器,另一个是更新后触发器。 insert触发器将使用值更新表。我的问题是这个;是否有可能在插件正在执行其作业的同时触发更新触发器?

2 个答案:

答案 0 :(得分:2)

FOR INSERT触发器只会在INSERT语句中触发 FOR UPDATE触发器只会在UPDATE语句中触发 。当然,如果您的insert触发器执行任何UPDATE语句,那么它将触发更新触发器,反之亦然。

你的UPDATE触发器不会触发INSERT语句(除了上面的触发器内更新),但当然你还需要设计并发性,因为它可能有两个不同的用户同时运行两个不同的操作 - 一个INSERT和一个UPDATE

答案 1 :(得分:0)

如果插入触发器对表进行更新,则将调用更新触发器。如果触发器触发另一个触发器,则称其为“递归触发器”。

可以为整个服务器禁用递归触发器:

sp_configure 'nested_triggers', 0
go
reconfigure

或者对于一个数据库:

alter database yourdb set recursive_triggers off