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