W wyzwalaczu dostępne są dwie pseudotabele, Inserted i Deleted , które zawierają te wartości.
W przypadku UPDATE, Deleted tabela będzie zawierać stare wartości, podczas gdy Inserted tabela zawiera nowe wartości.
Więc jeśli chcesz rejestrować ID, OldValue, NewValue w wyzwalaczu musisz napisać coś takiego:
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
Zasadniczo dołączasz do Inserted i Deleted pseudo-tabele, weź identyfikator (który jest taki sam, jak przypuszczam w obu przypadkach), starą wartość z Deleted tabela, nowa wartość z Inserted i przechowujesz wszystko w LogTable