【发布时间】:2014-11-18 04:29:14
【问题描述】:
我的表上有两个不同的触发器来在另一个表上插入记录。谁能解释一下哪个先开火?
为什么?
【问题讨论】:
标签: sql sql-server sql-server-2008 triggers
我的表上有两个不同的触发器来在另一个表上插入记录。谁能解释一下哪个先开火?
为什么?
【问题讨论】:
标签: sql sql-server sql-server-2008 triggers
如果同一条件有多个触发器,则可以使用sp_settriggerorder 指定要执行的第一个和最后一个触发器。两者之间的一切都未确定:
【讨论】:
所有的 BEFORE 触发器都会以某种顺序触发(文档一直到 说“你无法控制订单”)
然后,所有的 BEFORE FOR EACH ROW 都会以某种顺序触发
然后,每一行的所有 AFTER以某种顺序
然后所有的 AFTER 触发器以某种顺序
如果您的触发器依赖于“触发顺序”,您需要(必须)将它们合并为一个 单个触发器(将它们放在单独的过程中,有一个触发器调用它们 顺序)
【讨论】:
无法保证首先触发哪个触发器。如果您的代码依赖于执行顺序,则将所有代码放在同一个触发器中。
【讨论】: