如果我的“状态”列被更改,我想检查触发器内部。我尝试了UPDATED_COLUMNS,但它给了我更新的列索引,我不能依赖它们,因为表的结构可能会及时改变。
答案 0 :(得分:1)
只需使用WHERE
子句比较Inserted
(新值)和Deleted
(旧值)伪表中的此特定列 - 如果值不是同样,该列事实上已由您的UPDATE
声明更新:
CREATE TRIGGER YourUpdateTrigger
ON dbo.YourTable
FOR UPDATE
AS
-- do something useful here....
SELECT (columns)
FROM Inserted i
INNER JOIN Deleted d ON i.PrimaryKeyColumn = d.PrimaryKeyColumn
-- check if "Status" column has changed in the "UPDATE"
WHERE i.Status <> d.Status