触发器使用scope_identity()在MSSQL服务器中自动更新lastModified列

que*_*osa 3 sql-server triggers

我正在尝试创建一个触发器,在更新特定条目时自动更新表中的条目列.

表名是"帐户".列名称为"已修改"(它是指示上次更新此条目的日期时间).

我正在使用SCOPE_IDENTITY()指向我想要更新的条目.

触发创建成功,但是当我更新条目,列"修改"不会改变.也许我使用SCOPE_IDENTITY()不正确?这是我的代码:

CREATE TRIGGER trg_UpdateModified
ON dbo.accounts
AFTER UPDATE
AS
    UPDATE dbo.accounts
    SET modified = GETDATE()
    WHERE sysID = SCOPE_IDENTITY()
Run Code Online (Sandbox Code Playgroud)

谢谢!!

Dam*_*ver 9

使用inserted表来告诉你哪些行(小号)刚刚更新:

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)
Run Code Online (Sandbox Code Playgroud)