Ghi nhật ký bảng bằng triggers
Công ty quyết định theo dõi mọi thay đổi được thực hiện trên các bảng quan trọng nhất. Một trong số đó là bảng Orders.
Bất kỳ chỉnh sửa nào đối với nội dung của Orders đều phải được chèn vào TablesAudit.
Bài tập này là một phần của khóa học
Xây dựng và Tối ưu hóa Trigger trong SQL Server
Hướng dẫn bài tập
- Tạo một trigger
AFTERmới trên bảngOrders. - Cấu hình trigger để kích hoạt cho các câu lệnh
INSERT,UPDATEvàDELETE.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
-- Add a trigger that tracks table changes
___ ___ OrdersAudit
ON Orders
___ INSERT, ___, ___
AS
DECLARE @Insert BIT = 0;
DECLARE @Delete BIT = 0;
IF EXISTS (SELECT * FROM inserted) SET @Insert = 1;
IF EXISTS (SELECT * FROM deleted) SET @Delete = 1;
INSERT INTO ___ (TableName, EventType, UserAccount, EventDate)
SELECT 'Orders' AS TableName
,CASE WHEN @Insert = 1 AND @Delete = 0 THEN 'INSERT'
WHEN @Insert = 1 AND @Delete = 1 THEN 'UPDATE'
WHEN @Insert = 0 AND @Delete = 1 THEN 'DELETE'
END AS Event
,ORIGINAL_LOGIN() AS UserAccount
,GETDATE() AS EventDate;