文档介绍:第14章触发器
背景知识
DML触发器
DDL触发器
触发器是一种特殊的存储过程,它在特定语言事件发生时自动执行,通常用于实现强制业务规则和数据完整性。
背景知识
触发器的作用
触发器的主要作用是实现由主键和外键所不能保证的复杂的参照完整性和数据一致性。除此之外,触发器还有以下作用。
(1)触发器可以对数据库进行级联修改。
(2)实现比CHECK约束更为复杂的限制。
(3)比较数据修改前后的差别。
(4)强制表的修改要合乎业务规则。
Inserted表和Deleted表
SQL Server 2005为每个DML触发器都创建了两个专用临时表:Inserted表和Deleted表。这两个表的结构总是与被该触发器作用的表的结构相同,触发器执行完成后,与该触发器相关的这两个表也会被删除。
Inserted表存放由于执行INSERT或UPDATE语句而要向表中插入的所有行。
Deleted表存放由于执行DELETE或UPDATE语句而要从表中删除的所有行。
触发器的执行过程
DML触发器按照被激活的时机,可分为AFTER触发器和INSTEAD OF两种触发器。
DML触发器
DML触发器是当数据库服务器中发生数据操作语言(DML)事件时要执行的操作。DML事件包括对表或视图发出的UPDATE、INSERT或DELETE语句。
创建DML触发器
创建DML触发器的语法格式为:
CREATE TRIGGER [ schema_name . ]trigger_name
ON { table | view }
[ WITH ENCRYPTION ]
{ FOR | AFTER | INSTEAD OF }
{ [ INSERT ] [ , ] [ UPDATE ] [ , ] [ DELETE ] }
[ NOT FOR REPLICATION ]
AS { sql_statement [ ; ] }
其中各参数的含义如下。
(1)schema_name
DML触发器所属架构的名称。
(2)trigger_name
触发器的名称。