📅  最后修改于: 2023-12-03 15:20:26.914000             🧑  作者: Mango
在 SQL Server 中,触发器是一种特殊类型的存储过程,它会在数据表中的数据发生变化时自动执行。触发器可以用于实现数据的自动化处理和数据完整性的维护。本文将介绍如何使用 T-SQL 创建触发器。
要创建一个触发器,需要使用 CREATE TRIGGER 语句,如下所示:
CREATE TRIGGER [trigger_name]
ON [table_name]
AFTER {[INSERT],[UPDATE],[DELETE]}
AS
BEGIN
-- 触发器的代码
END
其中,trigger_name
是触发器名称,table_name
是要在其上创建触发器的数据表名称,[INSERT],[UPDATE],[DELETE]
是要监视的事件类型。
例如,下面的代码创建了一个在 employee
表上的触发器,该触发器在 INSERT
和 UPDATE
事件发生时执行:
CREATE TRIGGER [tr_employee]
ON [employee]
AFTER INSERT, UPDATE
AS
BEGIN
-- 触发器的代码
END
在创建一个触发器时,需要指定要监视的事件类型,以及发生这些事件时要执行的操作。以下是可用的事件类型和操作:
INSERT
:在数据表中添加新记录时触发触发器。UPDATE
:在数据表中更新记录时触发触发器。DELETE
:在从数据表中删除记录时触发触发器。触发器的代码可以包括一系列的 SQL 语句,包括 INSERT
、UPDATE
和 DELETE
语句。可以使用 INSERTED
和 DELETED
这两个特殊表来操作触发器的事件。
INSERTED
:在 INSERT
或 UPDATE
操作中,INSERTED
表包含新插入或更新的记录。DELETED
:在 UPDATE
或 DELETE
操作中,DELETED
表包含已删除或更新的记录。例如,下面的代码创建了一个在 employee
表上的触发器,该触发器在 INSERT
和 UPDATE
事件发生时自动更新 last_modified
列:
CREATE TRIGGER [tr_employee]
ON [employee]
AFTER INSERT, UPDATE
AS
BEGIN
UPDATE [employee]
SET [last_modified] = GETDATE()
WHERE [employee_id] IN (SELECT [employee_id] FROM INSERTED);
END
使用 T-SQL 创建触发器可以方便地实现自动化处理和数据完整性的维护。本文介绍了如何创建触发器、指定监视的事件类型和执行的操作,以及如何操作特殊表 INSERTED
和 DELETED
。通过掌握这些内容,程序员可以更好地利用触发器优化数据库管理。