開始使用免費開始

使用觸發程序進行資料表稽核

公司決定追蹤所有重要資料表的變更。其中一個資料表是 Orders。

對 Orders 內容所做的任何修改,都應該插入到 TablesAudit。

本練習屬於課程

在 SQL Server 建立與最佳化觸發程序

檢視課程

練習說明

  • 在 Orders 資料表上建立新的 AFTER 觸發程序。
  • 將觸發程序設定為在 INSERT、UPDATE 和 DELETE 陳述式時觸發。

動手互動練習

試著完成這個範例程式碼,體驗一下這個練習。

-- 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;
編輯並執行程式碼