开始使用免费开始使用

使用触发器进行表审计

公司决定跟踪对所有关键表所做的更改。其中一张表是 Orders

Orders 内容做出的任何修改,都应插入到 TablesAudit 中。

本练习是课程的一部分

在 SQL Server 中构建与优化触发器

查看课程

练习说明

  • Orders 表上创建一个新的 AFTER 触发器。
  • 将触发器设置为在 INSERTUPDATEDELETE 语句时触发。

交互式实操练习

通过完成这段示例代码来试试这个练习。

-- 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;
编辑并运行代码