我正在尝试创建一个触发器,在更新特定条目时自动更新表中条目的列。
表名是“accounts”。列名称为“已修改”(它是指示上次更新此条目时的dateTime)。
我正在使用SCOPE_IDENTITY()指向我想要更新的条目。
触发器已成功创建,但是当我更新条目时,“已修改”列不会更改。也许我正在使用SCOPE_IDENTITY()?这是我的代码:
CREATE TRIGGER trg_UpdateModified
ON dbo.accounts
AFTER UPDATE
AS
UPDATE dbo.accounts
SET modified = GETDATE()
WHERE sysID = SCOPE_IDENTITY()
谢谢!
答案 0 :(得分:9)
使用inserted
表告诉您刚刚更新了哪一行( s ):
CREATE TRIGGER trg_UpdateModified
ON dbo.accounts
AFTER UPDATE
AS
IF UPDATE(modified) RETURN; --Don't react recursively
UPDATE dbo.accounts
SET modified = GETDATE()
WHERE sysID in (select sysID from inserted)