2010-07-22 63 views
0

我的数据库中的一个表上有两个触发器。一个是插入触发器,另一个是更新后触发器。插入触发器将用值更新表格。我的问题是这个;是否有可能更新触发器在插入作业的同时触发?在一个表上的两个触发器sql服务器

回答

0

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

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

sp_configure 'nested_triggers', 0 
go 
reconfigure 

或者一个数据库:

alter database yourdb set recursive_triggers off 
2

一个FOR INSERT触发条件会INSERT声明。 A FOR UPDATE触发器将发射只有UPDATE陈述。当然,如果插入触发器执行任何UPDATE语句,则会触发更新触发器,反之亦然。

UPDATE触发器将不会触发一个INSERT声明(除了上述更新中触发的情况下),但当然你还是要设计一个并发性,因为有可能为两个不同的用户可以运行两个不同的同时进行的操作 - 一个INSERT和一个UPDATE

+0

除了update语句,merge语句或复制后台更新,都可以触发'for update'触发器 – Andomar 2010-07-22 17:49:00