1 / 34
文档名称:

sql数据库.ppt

格式:ppt   页数:34页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

sql数据库.ppt

上传人:ranfand 2016/5/29 文件大小:0 KB

下载得到文件列表

sql数据库.ppt

文档介绍

文档介绍:软件开发技术选讲枣庄学院计算机科学系 1 2017-1-29 2第9章触发器?触发器的基本概念?创建触发器?查看触发器?修改触发器?删除触发器?嵌套触发器?递归触发器 2017-1-29 3 ?触发器是一种特殊类型的存储过程,它也是由 T-SQL 语句组成,可以完成存储过程能完成的功能。但是它具有自己的显著特点:它与表紧密相连,可以看做表定义的一部分;它不可能通过名称被直接调用,更不允许参数,而是当用户对表中的数据进行修改时,自动执行;它可以用于 SQL Server 约束、默认值和规则的完整性检查、实施更为复杂的数据完整性约束。 触发器的基本概念 2017-1-29 4 ?触发器包含复杂的处理逻辑,能够实现复杂的完整性约束。同其他约束相比,它主要有以下优点: ?触发器自动执行。在对表中的数据做了任何修改(如手工输入或者通过应用程序实现的修改) 之后立即被激活。 触发器的基本概念 2017-1-29 5 ?触发器能够对数据库中的相关表实现级联更改。触发器是基于一个表创建的,但是可以针对多个表进行操作,实现数据库中相关表的级联更改。如,可在“产品”表的“产品编号”字段上建立一个插入触发器,对“产品”表增加记录时, 在“产品销售”表的“产品编号”上自动插入“产品编号”值。?触发器可以评估数据修改前后的表的状态,并根据其差异采取对策。?一个表中可以同时存在三个不同操作的触发器( INSERT 、 UPDATE 或 DELETE ),对于同一个修改语句可以有多个不同的响应对策。 触发器的基本概念 2017-1-29 6 ?触发器可以实现比 CHECK 约束更为复杂的数据完整性约束。在数据库中为了实现数据完整性约束,可以使用 CHECK 约束或触发器。 CHECK 约束不允许引用其他表中的列来完成检查工作,而触发器可以引用其他表中的列。例如,在 student 数据库中,向“学生”表中插入记录时,当输入“系部代码”时,必须先检查“系部”表中是否存在该系。这只能通过触发器实现,而不能通过 CHECK 约束完成。 触发器的基本概念 2017-1-29 7 ?在 SQL Server 2005 中,按触发被激活的时机可以将触发器分为两种类型: AFTER 触发器和 INSTEAD OF 触发器。? INSTEAD OF 触发器又称为替代触发器,当引起触发器执行的修改语句停止时,该类触发器替代触发操作执行。该类触发器既可在表上定义,也可在视图上定义。对于每个该类触发操作( INSERT 、 UPDATE 或 DELETE ),只能定义一个 INSTEAD OF 触发器。 触发器的基本概念 2017-1-29 8 ? AFTER 触发器称为后触发器,该类触发器是在引起触发器执行的修改语句成功完成之后执行。如果修改语句因错误(如违反约束或语法错误)而执行失败,触发器将不会执行。此类触发器只能定义在表上,不能创建在视图上。可为每个触发器操作( Insert 、 Update 或 Delete )创建多个 AFTER 触发器。若表有多个 AFTER 触发器,可使用 sp_settriggerorder 定义哪个 AFTER 触发器最先激发,哪个最后激发。除第一个和最后一个触发器外,所有其他的 AFTER 触发器的激发顺序不确定,并且无法控制。 触发器的基本概念 2017-1-29 9 ?创建触发器?触发器可以在对象资源管理器中创建,也可以在查询分析器中用 SQL 语句创建。在创建该类触发器前,必须注意以下六点: ? CREATE TRIGGER 语句必须是批处理中的第一条语句。将该批处理中随后的其他所有语句解释为 CREATE TRIGGER 语句定义的一部分。?只能在当前数据库中创建触发器,触发器名称必须遵循标识符的命名规则。?表的所有者具有创建触发器的默认权限,且不能将该权限转给其他用户。 创建触发器 2017-1-29 10 ?创建触发器?不能在临时表或系统表上创建触发器,但是触发器可以引用临时表而不能引用系统表。?尽管 TRUNCATE TABLE 语句类似于没有 WHERE 语句的 DELETE 语句,但由于该语句不被记入日志,所以它不会引发 DELETE 触发器。? WRITETEXT 语句不会引发 INSERT 或 UPDATE 触发器。 创建触发器