【发布时间】:2016-04-18 19:38:00
【问题描述】:
如果我在 SQL Server 中的同一个表上有一个 INSTEAD OF UPDATE 触发器和一个 AFTER UPDATE 触发器,那么它们的执行顺序是否保证是 INSTEAD OF 先到后继?
如果是这样,AFTER触发器中插入的表是否总是看到INSTEAD OF触发器的结果?
我的具体用例是 INSTEAD OF UPDATE 触发器正在更新计算列的等效功能,而 AFTER UPDATE 触发器具有使用该计算列的逻辑。
【问题讨论】:
-
您是否将两个触发器都放在一个表上并尝试过?结果如何?
-
如果您的而不是触发器的功能类似于计算列,为什么还需要触发器?你可以使用计算列吗?由于您关心触发器的顺序,您应该看看这篇文章。它解释了如何管理以及何时代替触发器触发。 msdn.microsoft.com/en-us/library/ms189568.aspx
-
@SeanLange:计算列会给我们带来一些性能问题,即使是 PERSISTED。该选择超出了问题的范围。
-
我看不到代替触发器的性能会更好,但这是您的决定。
标签: sql-server triggers sql-server-2012