Bắt đầu ngayBắt đầu miễn phí

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

Xem khóa học

Hướng dẫn bài tập

  • Tạo một trigger AFTER mới trên bảng Orders.
  • Cấu hình trigger để kích hoạt cho các câu lệnh INSERT, UPDATEDELETE.

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;
Chỉnh sửa và Chạy Mã