使用觸發程序進行資料表稽核
公司決定追蹤所有重要資料表的變更。其中一個資料表是 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;