Nel tuo trigger, hai due pseudo-tabelle disponibili, Inserted
e Deleted
, che contengono quei valori.
Nel caso di un AGGIORNAMENTO, il Deleted
la tabella conterrà i vecchi valori, mentre Inserted
la tabella contiene i nuovi valori.
Quindi, se vuoi registrare ID, OldValue, NewValue
nel tuo trigger, dovresti scrivere qualcosa come:
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
Fondamentalmente, ti unisci a Inserted
e Deleted
pseudo-tabelle, prendi l'ID (che è lo stesso, presumo, in entrambi i casi), il vecchio valore da Deleted
tabella, il nuovo valore da Inserted
tabella e memorizzi tutto nella LogTable