Em seu gatilho, você tem duas pseudo-tabelas disponíveis,
Inserted e Deleted , que contêm esses valores. No caso de um UPDATE, o
Deleted tabela conterá os valores antigos, enquanto o Inserted tabela contém os novos valores. Então, se você quiser registrar o
ID, OldValue, NewValue no seu gatilho, você precisaria escrever algo como: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
Basicamente, você se junta ao
Inserted e Deleted pseudo-tables, pegue o ID (que é o mesmo, presumo, em ambos os casos), o valor antigo do Deleted tabela, o novo valor do Inserted table, e você armazena tudo na LogTable