【问题标题】:Which trigger fires first哪个触发器首先触发
【发布时间】:2014-11-18 04:29:14
【问题描述】:

我的表上有两个不同的触发器来在另一个表上插入记录。谁能解释一下哪个先开火?

为什么?

【问题讨论】:

    标签: sql sql-server sql-server-2008 triggers


    【解决方案1】:

    如果同一条件有多个触发器,则可以使用sp_settriggerorder 指定要执行的第一个和最后一个触发器。两者之间的一切都未确定:

    http://msdn.microsoft.com/en-us/library/ms186762.aspx

    【讨论】:

      【解决方案2】:

      所有的 BEFORE 触发器都会以某种顺序触发(文档一直到 说“你无法控制订单”)

      然后,所有的 BEFORE FOR EACH ROW 都会以某种顺序触发

      然后,每一行的所有 AFTER以某种顺序

      然后所有的 AFTER 触发器以某种顺序

      如果您的触发器依赖于“触发顺序”,您需要(必须)将它们合并为一个 单个触发器(将它们放在单独的过程中,有一个触发器调用它们 顺序)

      【讨论】:

        【解决方案3】:

        无法保证首先触发哪个触发器。如果您的代码依赖于执行顺序,则将所有代码放在同一个触发器中。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2023-03-21
          • 1970-01-01
          • 1970-01-01
          • 2021-07-14
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多