- 1、本文档共60页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第10章 触发器 学习目标 本章要点 上机练习 习 题 学习目标 触发器是一个在修改指定表中的数据时强制执行的存储过程。由于用户无法绕过触发器,因此触发器成为了强制执行复杂业务逻辑,保证数据完整性的手段。我们前面学习过的约束只能实现简单的数据完整性检查,通过触发器,我们可以实现非常复杂的数据完整性检查。 学习目标 本章介绍了触发器的概念,以及如何创建、使用和维护触发器等内容,通过本章学习将学会如何创建、删除以及维护触发器。 本章要点 触发器的概念 创建和应用触发器 修改和删除触发器 触发器的概念 SQL Server 2000提供了两种主要机制来强制业务规则和数据完整性:即约束和触发器。触发器是一种特殊类型的存储过程,它在指定的表中的数据发生变化时自动生效。唤醒调用触发器以响应INSERT、UPDATE或DELETE语句。 触发器的概念 触发器可以查询其它表,还可以包含复杂的 Transact-SQL 语句。将触发器和触发它的语句作为可在触发器内回滚的单个事务对待。如果检测到严重错误,则整个事务即自动回滚。 触发器的概念 基本概念 使用触发器的优点 触发器的分类 基本概念 触发器实际就是一组代码,当表格中某个数据发生变化时,触发器就开始工作。它是控制与“插入”、“修改”、“删除”等相关的数据库的一种方法;同时,它也能用来维护数据的完整性。 触发器的概念 比较触发器与约束 触发器的概念 触发器是特殊类型的存储过程,它能在任何试图改变表中由触发器保护的数据时执行。触发器主要通过事件进行触发而被执行,触发器不能直接调用执行,也不能被传送和接受参数,而存储过程可以通过存储过程名直接调用。 触发器的概念 触发器与表或视图名是不能分开的,触发器定义在一个表或视图名中,当在表或视图名中执行插入(INSERT)、修改(UPDATE)和删除(DELETE)操作时触发器被触发自动执行。当表或视图名被删除时与它关联的触发器也一同被删除。 比较触发器与约束 触发器的主要好处在于它们可以包含使用Transact-SQL代码的复杂处理逻辑。因此,触发器可以支持约束的所有功能;但它在所给出的功能上并不总是最好的方法。 比较触发器与约束 实体完整性总应在最低级别上通过索引进行强制,这些索引或是PRIMARY KEY和UNIQUE约束的一部分,或是在约束之外独立创建的。假设功能可以满足应用程序的功能需求,域完整性应通过CHECK约束进行强制,而引用完整性(RI)则应通过FOREIGN KEY约束进行强制。 比较触发器与约束 在约束所支持的功能无法满足应用程序的功能要求时,下列情况下触发器就极为有用: 除非 REFERENCES 子句定义了级联引用操作,否则 FOREIGN KEY 约束只能以与另一列中的值完全匹配的值来验证列值。 比较触发器与约束 CHECK 约束只能根据逻辑表达式或同一表中的另一列来验证列值。如果应用程序要求根据另一个表中的列验证列值,则必须使用触发器。 约束只能通过标准的系统错误信息传递错误信息。如果应用程序要求使用自定义信息和较为复杂的错误处理,则必须使用触发器。 比较触发器与约束 触发器通过数据库中的相关表可实现级联更改,不过,通过级联引用完整性约束可以更有效地执行这些更改。 触发器可以禁止或回滚违反引用完整性的更改,从而取消所尝试的数据修改。当更改外键且新值与主键不匹配时,此类触发器就可能发生作用。 比较触发器与约束 如果触发器表上存在约束,则在INSTEAD OF触发器执行后但在AFTER触发器执行前检查这些约束。如果约束破坏,则回滚INSTEAD OF触发器操作并且不执行AFTER触发器。 使用触发器的优点 触发器有很多的优点,下面我们来一一讲解。 触发器的优点如下。 触发器可通过数据库中的相关表实现级联更改;不过,通过级联引用完整性约束可以更有效地执行这些更改。 使用触发器的优点 触发器可以强制比用CHECK约束定义的约束更为复杂的约束。 与CHECK约束不同,触发器可以引用其它表中的列。 使用触发器的优点 触发器也可以评估数据修改前后的表状态,并根据其差异采取对策。 一个表中的多个同类触发器(INSERT、UPDATE或DELETE)允许采取多个不同的对策以响应同一个修改语句。 触发器的分类 SQL Server 2000提供了以下两种触发器选项,分别如下。 执行INSTEAD OF触发器代替通常的触发动作。INSTEAD OF触发器还可在带有一个或多个基表的视图上定义,而在这些视图上这些触发器可扩展视图可支持的更新类型。 触发器的分类 在执行了INSERT、UPDATE或DELETE语句操作之后执行AFTER触发器。指定AFTER与指定FOR相同,而后者
您可能关注的文档
最近下载
- 2022急诊胸痛心血管标志物联合检测专家共识(全文).pdf VIP
- 2025年四川高处安装、维护、拆除作业_特种作业证考试复习题库资料(含答案).pdf
- 临床医学专业水平测试评分表.pdf VIP
- 2024年四川省绵阳市中考化学真题卷(含答案与解析).pdf VIP
- 《三位数乘两位数》大单元教学设计 (1).docx VIP
- 2024年四川省绵阳市中考数学真题卷(含答案与解析).pdf VIP
- 生如夏花小清新模板(含音频+视频).pptx VIP
- 2024学年统编版高中语文选择性必修下册《客至》优质课一等奖课件28张.pptx
- Sysmex XN-1000全自动血液分析仪标准操作程序.pdf VIP
- 2025安全生产月主题宣讲课件.pptx
文档评论(0)