I din trigger har du två tillgängliga pseudotabeller, Inserted
och Deleted
, som innehåller dessa värden.
I fallet med en UPPDATERING, Deleted
tabellen kommer att innehålla de gamla värdena, medan Inserted
tabellen innehåller de nya värdena.
Så om du vill logga ID, OldValue, NewValue
i din trigger, skulle du behöva skriva något i stil med:
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
I grund och botten går du med i Inserted
och Deleted
pseudo-tabeller, ta tag i ID:t (som är detsamma, antar jag, i båda fallen), det gamla värdet från Deleted
tabellen, det nya värdet från Inserted
tabell, och du lagrar allt i LogTable