在MSSQL服务器中自动更新lastModified列我试图创建一个触发器,当该特定条目更新时,自动更新表中条目的列。触发器使用scope_identity()
表名是“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()
谢谢!!
'SCOPE_IDENTITY'只有* *有史以来设置为有意义的值由'INSERT'语句,所以在一个'更新后的'触发器,它不会有意义 - 并且因为名称的“范围”部分而加倍。触发器的作用域与您的触发器响应的DML发布的语句的范围不同。 –
谢谢@Damien_The_Unbeliever。我是SQL新手......有关如何完成我想要完成的任何建议? – quelquecosa