トリガーには、使用可能な 2 つの擬似テーブル Inserted
があります。 そしてDeleted
UPDATE の場合、Deleted
テーブルには古い値が含まれますが、 Inserted
テーブルには新しい値が含まれています。
ID, OldValue, NewValue
をログに記録したい場合 トリガーでは、次のように記述する必要があります:
CREATE TRIGGER trgEmployeeUpdate ON dbo.Employees AFTER UPDATE AS INSERT INTO dbo.LogTable(ID, OldValue, NewValue) SELECT i.ID, d.Name, i.Name FROM Inserted i INNER JOIN Deleted d ON i.ID = d.ID
プレ>基本的に、あなたは
Inserted
に参加します そしてDeleted
疑似テーブル、ID (どちらの場合も同じだと思います)、Deleted
からの古い値を取得します テーブル、Inserted
からの新しい値LogTable
にすべてを保存します。