Trong trình kích hoạt của bạn, bạn có sẵn hai bảng giả, Inserted và Deleted , chứa các giá trị đó.
Trong trường hợp CẬP NHẬT, Deleted bảng sẽ chứa các giá trị cũ, trong khi Inserted bảng chứa các giá trị mới.
Vì vậy, nếu bạn muốn ghi lại ID, OldValue, NewValue trong trình kích hoạt của bạn, bạn cần viết một cái gì đó như:
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
Về cơ bản, bạn tham gia Inserted và Deleted bảng giả, lấy ID (giống nhau, tôi cho là giống nhau, trong cả hai trường hợp), giá trị cũ từ Deleted bảng, giá trị mới từ Inserted và bạn lưu trữ mọi thứ trong LogTable