Във вашия тригер имате две налични псевдотаблици, Inserted
и Deleted
, които съдържат тези стойности.
В случай на АКТУАЛИЗАЦИЯ, 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
псевдо-таблици, вземете идентификатора (който е един и същ, предполагам и в двата случая), старата стойност от Deleted
таблица, новата стойност от Inserted
таблица и съхранявате всичко в LogTable