- 1、本文档共58页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
11.7 触发器综述 1、触发器概念 触发器是一种特殊类型的存储过程,不由用户直接调用,而且可以包含复杂的 SQL语句。它们主要用于强制复杂的业务规则或要求。触发器还有助于强制引用完整性,以便在添加、更新或删除表中的行时保留表之间已定义的关系。可以完成存储过程能完成的功能,但是它具有自己显著的的特点: 1)它与表紧密相连,可以看作表定义的一部分; 2)它不能通过名称被直接调用,更不允许带参数,而是当用户对表中的数据进行修改时,自动执行; 3)它可以用于SQL Server约束、默认值和规则的完整性检查,实施更为复杂的数据完整性约束。 11.7 触发器综述 2、触发器的优点 触发器包含复杂的处理逻辑,能够实现复杂的数据完整性约束。同其他约束相比,它主要有以下优点: 1)触发器自动执行 在对表的数据作了任何修改(比如手工输入或者应用程序采取的操作)之后立即被激活。 2)触发器能够对数据库中的相关表实现级联更改 触发器是基于一个表创建的,但是可以针对多个表进行操作,实现数据库中相关表的级联更改。例如,在学生数据库中,可以在产品表的产品编号字段上建立一个插入触发器,当对产品表增加记录时,在产品销售表的产品编号上自动插入编号值。 11.7 触发器综述 2、触发器的优点 3)触发器可以实现比CHECK约束更为复杂的数据完整性约束 在数据库中为了实现数据完整性约束,可以使用CHECK约束或触发器。CHECK约束不允许引用其它表中的列来完成检查工作,而触发器可以引用其它表中的列。例如,在STUDENT数据库中,向学生表中插入记录时,当输入系部代码时,必须先检查系部表中是否存在该系。这只能通过触发器实现,而不能通过CHECK约束完成。 4)触发器可以评估数据修改前后的表状态,并根据其差异采取对策。 5)一个表中可以存在多个同类触发器(INSERT、UPDATE或DELETE),对于同一个修改语句可以有多个不同的对策以响应。 11.7 触发器综述 3、触发器的种类 SQL Server 2005按触发被被激活的时机可以分为两种类型:AFTER 触发器和 INSTEAD OF触发器。 AFTER触发器又称为后触发器,该类触发器是在引起触发器执行的修改语句成功完成之后执行。如果修改语句因错误(如违反约束或语法错误)而失败,触发器将不会执行。此类触发器只能定义在表上,不能创建在视图上。可以为每个触发操作(INSERT、UPDATE或DELETE)创建多个AFTER触发器。 INSTEAD OF触发器又称为替代触发器,当引起触发器执行的修改语句停止执行时,该类触发器代替触发操作执行。该类触发器既可在表上定义,也可在视图上定义。对于每个触发操作(INSERT、UPDATE和DELETE)只能定义一个INSTEAD OF触发器。 11.8触发器的创建执行综述 在进行触发器的基本操作之前,介绍两张特殊的临时表,分别是inserted表和deleted表。这两张表都存在于高速缓存中。用户可以使用这两张临时表来检测某些修改操作所产生的效果。例如,可以使用SELECT 语句来检查INSERT和UPDATE语句执行的插入操作是否成功,触发器是否被这些语句触发等。但是不允许用户直接修改inserted表和deleted表中数据。 11.8触发器的创建执行 deleted表中存储着被DELETE和UPDATE语句影响的旧数据行。在执行DELETE和UPDATE语句过程中,指定的数据行被用户从基本表中删除,然后转移到了delete表中。一般来说,在基本表中delete表中不会存在有相同的数据行。 inserted表中存储着被INSERT 和UPDATE语句影响的新的数据行。当用户执行INSERT 和UPDATE语句时,新的数据行被添加到insert表中,同时这些数据行的备份被复制到inserted临时表中。 一个典型的UPDATE事务实际上是由两个操作组成。首先,旧的数据行从基本表中转移到delete表中,前提是这个过程没有出错;紧接着将新的数据行同时插入基本表和insert表。 11.8触发器的创建执行 1.触发器的基本操作__创建 在创建触发器前,必须注意以下几点: CREATE TRIGGER 语句必须是批处理中的第一条语句。 只能在当前数据库中创建触发器,名称必须遵循标识符的命名规则。 表的所有者具有创建触发器的默认权限,不能将该权限转给其他用户。 不能在临时表或系统表上创建触发器,但是触发器可以引用临时表,但是不能引用系统表。 尽管TRUNCATE TABLE 语句类似
您可能关注的文档
- 生命生存生活剖析.ppt
- 广东省广州市天河区2015年中考物理一模试卷(解析版)讲义.doc
- 生命生命公开课剖析.ppt
- 第三单元《统一国家的建立》复习课件(岳麓版七年级上)讲述.ppt
- 生命与安全剖析.doc
- 第三单元《写人要抓住特点》课件讲述.ppt
- 生命与科学导论作业一剖析.docx
- 广东省江门市2015-2016学年度中考历史模拟考试讲义.doc
- 广东省揭阳市2016届高三第二次高考模拟(二模)文科综合试题讲义.doc
- 广东省揭阳市2016届高三第一次模拟考试理综化学试题(WORD版)[来源:学优高考网416768]讲义.doc
- 2025年环境工程职业技能培训项目设计与应用.docx
- 2025年城市配送体系优化与末端配送效率提升,智能调度系统研究分析报告.docx
- 职业技能培训数字化转型中的远程教育模式研究报告2025.docx
- 2025年互联网金融平台资金存管安全性与技术挑战应对策略报告.docx
- 2025年环渤海地区新能源电动观光船跨境旅游航线市场潜力评估报告.docx
- 血透室管理课件.pptx
- 汽车行业2025年芯片短缺应对策略与汽车行业竞争力提升报告.docx
- 半导体封装技术国产化在5G基站设备中的应用突破分析.docx
- 深入研究2025年新能源汽车充电基础设施投资策略与产业发展.docx
- 2025年珠宝电商供应链优化与创新趋势研究报告.docx
文档评论(0)