In Ihrem Trigger stehen Ihnen zwei Pseudotabellen zur Verfügung, Inserted
und Deleted
, die diese Werte enthalten.
Bei einem UPDATE wird der Deleted
Tabelle enthält die alten Werte, während die Inserted
Tabelle enthält die neuen Werte.
Wenn Sie also ID, OldValue, NewValue
protokollieren möchten In Ihrem Trigger müssten Sie so etwas schreiben wie:
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
Im Grunde nehmen Sie an den Inserted
teil und Deleted
Pseudo-Tabellen, holen Sie sich die ID (die in beiden Fällen dieselbe ist, nehme ich an), den alten Wert aus Deleted
Tabelle, der neue Wert aus der Inserted
Tabelle, und Sie speichern alles in der LogTable