存储过程和触发器触发器课件.ppt

存储过程和触发器触发器课件.ppt

ID:57014741

大小:70.50 KB

页数:51页

时间:2020-07-26

存储过程和触发器触发器课件.ppt_第1页
存储过程和触发器触发器课件.ppt_第2页
存储过程和触发器触发器课件.ppt_第3页
存储过程和触发器触发器课件.ppt_第4页
存储过程和触发器触发器课件.ppt_第5页
资源描述:

《存储过程和触发器触发器课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第10章存储过程与触发器—触发器10.7触发器综述—1、触发器概念触发器:是一种特殊类型的存储过程,不由用户直接调用,而是往表中添加、更新或删除数据时自动被激活。它可以包含复杂的SQL语句。它们主要用于强制复杂的业务规则或要求。触发器还有助于强制引用完整性,以便在添加、更新或删除表中的行时保留表之间已定义的关系。触发器的特点可以完成存储过程能完成的功能,但是它具有自己显著的的特点:1)它与表紧密相连,可以看作表定义的一部分;2)它不能通过名称被直接调用,更不允许带参数,而是当用户对表中的数据进行修改时,

2、自动执行;3)它可以用于SQLServer约束、默认值和规则的完整性检查,实施更为复杂的数据完整性约束。10.7触发器综述--2、触发器的优点1)触发器自动执行在对表的数据作了任何修改(比如手工输入或者应用程序采取的操作)之后立即被激活。2)触发器能够对数据库中的相关表实现级联更改触发器是基于一个表创建的,但是可以针对多个表进行操作,实现数据库中相关表的级联更改。例如,在数据库中,可以在产品表的产品编号字段上建立一个插入触发器,当对产品表增加记录时,在产品销售表的产品编号上自动插入编号值。10.7触发器

3、综述--2、触发器的优点3)触发器可以实现比CHECK约束更为复杂的数据完整性约束CHECK约束不允许引用其它表中的列来完成检查工作,而触发器可以引用其它表中的列。例如,在student1数据库中,向学生表中插入记录时,当输入系部代码时,必须先检查系部表中是否存在该系。这只能通过触发器实现,而不能通过CHECK约束完成。4)触发器可以评估数据修改前后的表状态,并根据其差异采取对策。5)一个表中可以存在多个同类触发器(INSERT、UPDATE或DELETE),对于同一个修改语句可以有多个不同的对策以响应

4、。10.7触发器综述--3、触发器的种类DML(数据操作语言)触发器:update,insert,deleteDDL(数据定义语言)触发器:SQLserver2005新增的触发器10.7触发器综述--3、触发器的种类SQLServer2005的DML触发器,按触发被被激活的时机可以分为两种类型:AFTER触发器INSTEADOF触发器10.7触发器综述--3、触发器的种类AFTER触发器(后触发器),该类触发器是在引起触发器执行的修改语句成功完成之后执行:如果修改语句因错误(如违反约束或语法错误)而失败

5、,触发器将不会执行。此类触发器只能定义在表上,不能创建在视图上可以为每个触发操作(INSERT、UPDATE或DELETE)创建多个AFTER触发器。INSTEADOF触发器INSTEADOF触发器(替代触发器),当引起触发器执行的修改语句停止执行时,该类触发器代替触发操作执行。该类触发器既可在表上定义,也可在视图上定义。对于每个触发操作(INSERT、UPDATE和DELETE)只能定义一个INSTEADOF触发器。10.8触发器的创建执行综述在进行触发器的基本操作之前,介绍两张特殊的临时表,分别是i

6、nserted表和deleted表。这两张表都存在于高速缓存中。用户可以使用这两张临时表来检测某些修改操作所产生的效果。例如,可以使用SELECT语句来检查INSERT和UPDATE语句执行的插入操作是否成功,触发器是否被这些语句触发等。但是不允许用户直接修改inserted表和deleted表中数据。10.8触发器的创建执行deleted表中存储着被DELETE和UPDATE语句影响的旧数据行。在执行DELETE和UPDATE语句过程中,指定的数据行被用户从基本表中删除,然后转移到了delete表中。

7、一般来说,在基本表中delete表中不会存在有相同的数据行。inserted表中存储着被INSERT和UPDATE语句影响的新的数据行。当用户执行INSERT和UPDATE语句时,新的数据行被添加到insert表中,同时这些数据行的备份被复制到inserted临时表中。一个典型的UPDATE事务实际上是由两个操作组成。首先,旧的数据行从基本表中转移到delete表中,前提是这个过程没有出错;紧接着将新的数据行同时插入基本表和insert表。10.8触发器的创建执行在创建触发器前,必须注意以下几点:CRE

8、ATETRIGGER语句必须是批处理中的第一条语句。只能在当前数据库中创建触发器,名称必须遵循标识符的命名规则。表的所有者具有创建触发器的默认权限,不能将该权限转给其他用户。不能在临时表或系统表上创建触发器,但是触发器可以引用临时表,但是不能引用系统表。尽管TRUNCATETABLE语句类似于没有WHERE子句(用于删除行)的DELETE语句,但由于该语句不被记入日志,所以它不会引发DELETE触发器。WRITETEXT语句不会引发INSE

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。