代码之家  ›  专栏  ›  技术社区  ›  Pure.Krome

在SQLServer触发器中,是否可以确定特定字段是否已更新?

  •  2
  • Pure.Krome  · 技术社区  · 14 年前

    如果我有一张简单的桌子,我想做点什么(比如。。执行一个存储过程)。

    这可能吗?

    版本:SQL Server 2008 R2。

    示例表:-

    ID INTEGER PRIMARY KEY
    Name NVARCHAR(100) NOT NULL
    Age TINYINT NOT NULL
    HairColour TINYINT NOT NULL
    

    所以。。如果 姓名 字段更改,然后我将执行存储过程'Foo'。

    有什么想法吗?

    1 回复  |  直到 8 年前
        1
  •  4
  •   OMG Ponies    14 年前

    用途:

    CREATE TRIGGER trig_updateName ON YOUR_TABLE
    
    FOR UPDATE AS
    
      IF NOT UPDATE(Name) 
      BEGIN
    
         RETURN
    
      END
    
      EXEC foo
    

    每当我们更新您的表中的一个或多个记录时,就会自动执行此触发器。“UPDATE”函数用于检查执行“trig\u updateAuthor”触发器的“UPDATE”查询是否更新了“Name”字段。如果字段没有,则触发器将控制权返回给SQLServer。

    推荐文章