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

Theo dõi lần kích hoạt trigger

Một yếu tố quan trọng khi giám sát trigger là có lịch sử các lần trigger được thực thi. Điều này giúp bạn liên hệ thời điểm kích hoạt trigger với bất kỳ sự cố nào xảy ra trong cơ sở dữ liệu.

Nếu thời điểm trùng khớp, rất có thể sự cố do trigger gây ra.

SQL Server cung cấp thông tin về việc thực thi của các trigger hiện đang nằm trong bộ nhớ trong view sys.dm_exec_trigger_stats. Tuy nhiên, khi một trigger bị loại khỏi bộ nhớ, mọi thông tin về nó cũng biến mất khỏi view, nên bạn sẽ mất lịch sử thực thi của trigger.

Để khắc phục hạn chế này, bạn quyết định sử dụng bảng TriggerAudit để lưu thông tin về mọi lần cố gắng sửa đổi các hàng trong bảng Orders, vì nhiều người cho biết bảng này thường phản hồi chậm.

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

  • Sửa trigger PreventOrdersUpdate.
  • Thiết lập trigger kích hoạt khi các hàng trong bảng Orders được UPDATE.
  • Ghi thêm chi tiết về lần thực thi trigger vào bảng TriggerAudit.

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.

-- Modify the trigger to add new functionality
___ TRIGGER PreventOrdersUpdate
ON ___
-- Prevent any row changes
INSTEAD OF ___
AS
	-- Keep history of trigger executions
	INSERT INTO ___ (TriggerName, ExecutionDate)
	SELECT 'PreventOrdersUpdate', 
           GETDATE();

	RAISERROR ('Updates on "Orders" table are not permitted.
                Place a new order to add new products.', 16, 1);
Chỉnh sửa và Chạy Mã