关于 SQL Server 2005 中的触发器的非常普遍的问题。
在什么情况下会触发表触发器,什么情况下不会?
任何可以演示的代码示例都很棒。
我正在编写一个基于审计的数据库,只是想了解任何可能不会触发我为更新、删除和插入表而设置的触发器的情况。
举个例子来说明我的意思,
UPDATE MyTable SET name = 'test rows' WHERE id in (1, 2, 3);
以下语句仅触发更新触发器一次。
你希望他们什么时候开火?
CREATE TRIGGER AFTER ACTION
在操作之后运行(insert update delete
)正在致力于。INSTEAD OF
触发触发器来代替操作。
触发器的最大问题之一是,每当执行操作时它们就会触发,即使没有行受到影响。这不是一个错误,如果你不小心的话,它很快就会烧死你。
此外,通过触发器,您将使用inserted
and deleted
表。更新的行在两者中均列出。这让很多人望而却步,因为他们不习惯思考update
as a delete
then insert
.
MSDN 文档实际上对触发器何时触发及其产生的效果进行了相当深入的讨论here https://msdn.microsoft.com/en-us/library/ms189799(v=sql.130).aspx.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)