在一个表上的两个触发器sql服务器
问题描述:
我的数据库中的一个表上有两个触发器。一个是插入触发器,另一个是更新后触发器。插入触发器将用值更新表格。我的问题是这个;是否有可能更新触发器在插入作业的同时触发?在一个表上的两个触发器sql服务器
答
如果您的插入触发器对表进行更新,则会调用更新触发器。如果触发器触发另一个触发器,则称其为“递归触发器”。
递归触发器可以为整个服务器被禁用:
sp_configure 'nested_triggers', 0
go
reconfigure
或者一个数据库:
alter database yourdb set recursive_triggers off
答
一个FOR INSERT
触发条件会只上INSERT
声明。 A FOR UPDATE
触发器将发射只有对UPDATE
陈述。当然,如果插入触发器执行任何UPDATE
语句,则会触发更新触发器,反之亦然。
你UPDATE
触发器将不会触发一个INSERT
声明(除了上述更新中触发的情况下),但当然你还是要设计一个并发性,因为有可能为两个不同的用户可以运行两个不同的同时进行的操作 - 一个INSERT
和一个UPDATE
。
除了update语句,merge语句或复制后台更新,都可以触发'for update'触发器 – Andomar 2010-07-22 17:49:00