如果我有一个简单的表,并且我希望在列(我知道要查找的列)发生更改时执行某些操作(例如执行存储过程)。
这可能吗?
版本:SQL Server 2008 R2。
示例表: -
ID INTEGER PRIMARY KEY
Name NVARCHAR(100) NOT NULL
Age TINYINT NOT NULL
HairColour TINYINT NOT NULL
所以..如果 Name 字段的内容发生变化,那么我将执行存储过程'Foo'。
有什么想法吗?
答案 0 :(得分:4)
使用:
CREATE TRIGGER trig_updateName ON YOUR_TABLE
FOR UPDATE AS
IF NOT UPDATE(Name)
BEGIN
RETURN
END
EXEC foo
每当我们更新YOUR_TABLE中的一个/多个记录时,就会自动执行此触发器。 “UPDATE”函数用于检查“名称”字段是否已由执行“trig_updateAuthor”触发器的“UPDATE”查询更新。如果field没有,则触发器将控制权返回给SQL server。