In je trigger heb je twee pseudo-tabellen beschikbaar, Inserted en Deleted , die deze waarden bevatten.
In het geval van een UPDATE, de Deleted tabel zal de oude waarden bevatten, terwijl de Inserted tabel bevat de nieuwe waarden.
Dus als u de ID, OldValue, NewValue in je trigger, zou je zoiets moeten schrijven als:
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
In principe sluit je je aan bij de Inserted en Deleted pseudo-tabellen, pak de ID (die in beide gevallen hetzelfde is, neem ik aan), de oude waarde van de Deleted tabel, de nieuwe waarde uit de Inserted tabel, en je slaat alles op in de LogTable