SQL第 16章SQL触发器前面已经介绍过了表、视图、存储过程以及函数的创建
一般而言,创建这些对象后,需要配置一些对应的操作
例如,执行 SELECT语句查询数据,执行 EXEC命令执行存储过程等
SQL也支持自动执行的对象,对数据的更改作出反应,即触发器
1触发器的基本概念触发器是一种特殊的存储过程,它在表的数据变化时发生作用
触发器可以维护数据完整性
1触发器简介触发器在数据库里以独立的对象存储,与存储过程不同的是,存储过程通过其他程序来启动运行,而触发器是由一个事件来启动运行
即当某个事件发生时,触发器自动地隐式运行
并且,触发器不能接收参数
触发器对象定义了触发器的特征和被调用时采取的行动
而这些动作是通过一个或多个SQL语句来实现的
SQL支持 3种类型的触发器:INSERT(插入)、UPDATE(更新)和DELETE(删除)
当向表中插入数据、更新数据或删除数据时,触发器就被调用
通过给表定义一个或多个触发器,可以指定哪个数据修改时,可以激发触发器
2触发器执行环境触发器执行环境包含了触发器正确执行所必需的信息
这些信息主要是触发器本身的细节和触发器所定义的目标表
另外,触发器执行环境还包括一个或两个测试表,称之为 INSERTED表和 DELETED表
测试表是虚表,用于保存目标表更新、插入或删除的数据信息
这些测试表用来测试数据修改的结果,以及设置触发器行动的条件
用户不能直接修改测试表中的数据,但能在 SELECT语句中,使用这些表来检测 INSERT,UPDATE或 DELETE的结果
各种类型触发器用到的测试表如图 16
1所示(针对 SQLServer数据库系统而言)
326第 16章SQL触发器SQL** …新数据INSERTtrigger表Insered表** …被删除数据DELETEtrigger表Deleted表*