2024年3月9日发(作者:)
在 SQL Server 中,触发器(Trigger)是一种特殊的存储过
程,它会在特定的数据修改操作(如 INSERT、UPDATE 或
DELETE)发生时自动执行。你可以使用触发器来执行各种
任务,如验证数据、执行审计、确保数据完整性等。
在触发器中,你可以使用 INSERTED 和 DELETED 这两个
特殊的表来访问被修改的数据。INSERTED 表包含新插入或
修改后的数据,而 DELETED 表包含被删除或修改前的数据。
以下是一个简单的例子,展示了如何在触发器中使用条件判
断:
假设我们有一个名为 Employees 的表,我们想在每次插入
新员工时检查其工资是否低于某个值(例如 2000)。如果
是,则触发器会阻止这次插入操作。
sqlCREATE
TRIGGER
trg_CheckSalary
ON
Employees
AFTER
INSERT
AS
BEGIN
-- 检查是否有任何新员工的工资低于 2000
IF
EXISTS
(
SELECT
1
FROM
INSERTED
WHERE
Salary
<
2000
)
BEGIN
-- 如果有,则回滚事务,阻止插入
ROLLBACK
TRANSACTION;
RAISERROR(
'Cannot insert employees with salary less than 2000.'
,
16
,
1
);
END
END
;
在上述触发器中,我们使用了 INSERTED 表来访问新插入
的数据,并使用 ROLLBACK TRANSACTION 来撤销这次插
入操作。我们还使用了 RAISERROR 来抛出一个错误消息,
告诉用户为什么插入操作被阻止。


发布评论