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