在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