В вашем триггере есть две псевдотаблицы, 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