【问题标题】:Does deleting a row cause an update trigger to fire?删除行会导致更新触发器触发吗?
【发布时间】:2009-01-21 15:27:48
【问题描述】:

在 SQL Server 2000 中,默认情况下,DELETE 查询是否会导致执行表的 UPDATE 触发器?

我知道我可以定义一个触发器,该触发器将在 DELETE 和 UPDATE 上执行,但我想我会先验证这实际上是必需的。

【问题讨论】:

    标签: sql-server triggers


    【解决方案1】:

    DELETE 不会触发 UPDATE 触发器。如果您有一个触发器定义为在 DELETE 和 UPDATE 上触发,那么它将在 DELETE 上执行,但那是因为它也是一个 DELETE 触发器。

    【讨论】:

      【解决方案2】:

      将其转储到您的触发器中并自己检查

      IF @@ROWCOUNT > 0 
      BEGIN 
          IF EXISTS (SELECT 1 FROM inserted) 
          BEGIN 
              IF EXISTS (SELECT 1 FROM deleted) 
                  PRINT 'update'; 
              ELSE 
                  PRINT 'insert'; 
          END 
          ELSE 
              PRINT 'delete'; 
      END 
      

      【讨论】:

      • 谢谢,我终于有时间尝试这段代码了。这对帮助我找出答案很有用。话虽这么说,我已经接受了 Chochos 的回答,因为他有这个问题的实际答案。谢谢!
      猜你喜欢
      • 1970-01-01
      • 2022-01-11
      • 2011-10-26
      • 2012-04-22
      • 1970-01-01
      • 2011-05-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多