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