Dans votre déclencheur, vous avez deux pseudo-tables disponibles, Inserted
et Deleted
, qui contiennent ces valeurs.
Dans le cas d'une UPDATE, le Deleted
table contiendra les anciennes valeurs, tandis que le Inserted
table contient les nouvelles valeurs.
Donc, si vous souhaitez enregistrer le ID, OldValue, NewValue
dans votre déclencheur, vous devez écrire quelque chose comme :
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
En gros, vous rejoignez le Inserted
et Deleted
pseudo-tables, récupérez l'ID (qui est le même, je présume, dans les deux cas), l'ancienne valeur du Deleted
table, la nouvelle valeur de la table Inserted
table, et vous stockez tout dans le LogTable