- 1、本文档共20页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第四章 触发器【部分】
触发器概
触发器的概念
是一种特殊的存储过程,在指定标的数据发生
变化时自动生效。
具体地讲,就是当对某一表进行数据插入( insert)、删除(delete)以及更改(update) 操作时,自动执行做某些处理的SQL 语句。
1
触发器的特点
v特殊的存储过程
v特殊点是不需要由用户维护。当对表作 UPDATE 、INSERT 、DELETE时自动触发执 行。
v保证业务规则和完整性。
2
触发器应用场合
v完成比CHECK约束更复杂的数据约束。
v为保证数据库性能而维护的非规范化数据。
v实现复杂的商业规则。
v评估数据修改前后的表状态,并根据其差异 采取对策。
v一个表中的多个同类触发器(INSERT 、 UPDATE 或 DELETE)允许采取多个不同的 对策以响应同一个修改语句。
3
触发器创建时包含的4个核心要素
v指定触发器的名称。
v指出触发器所作用的表。
v指出引发触发器的操作: INSERT、
UPDATE 或 DELETE多个或者其中的一个。
v编写SQL语句,实现触发器中腰完成的工作。
4
8.1 创建触发器
CREATE TRIGGER 触发器名称
ON {表名 | 视图名}
[ WITH ENCRYPTION ]
{ FOR | AFTER | INSTEAD OF } { [ INSERT ] [ , ] [ DELETE ] [ , ] [UPDATE ] }
AS
[ { IF UPDATE ( column )
[ { AND | OR } UPDATE ( column ) ...] } ]
SQL 语句
5
创建触发器注意事项
v WITH ENCRYPTION:加密,不看看到原来的SQL脚本
v FOR 或AFTER类型【后触发】 :所有SQL语句都执行完且 执行成功的情况下才能执行触发器。 可以在同一种操作上建 立多个触发器;
v INSTEAD OF类型【替代触发】 :仅执行触发器本身,而不 执行引起触发操作的SQL语句。 在同一种操作上只能建立一 个触发器。
v 在一个表上可以建立多个名称不同、类型各异的触发器,每 个触发器可由所有三个操作来引发。
v 大部分Transact-SQL语句都可用在触发器中,但所有的建立 和更改数据库以及数据库对象的语句、所有的DROP语句都 不允许在触发器中使用。
v 在触发器定义中,可以使用IF UPDATE子句来测试在 INSERT和UPDATE语句中是否对指定字段有影响。
v 通常不在触发器中返回任何结果。
v 在触发器中可使用特殊的二个表: INSERTED 、DELETED
6
inserted 表和 deleted 表
在触发器执行时,会产生2个临时表:
inserted 表
deleted 表
inserted 表:用于存储 insert 和 update 语句所 影响的副本
delete 表:用于存储 delete 和 update 语句所 影响的副本
7
INSERTED表和DELETED表 说明
v INSERTED和DELETED是与操作表结构一样的临时表, 其驻留内存,可用于测试修改结果等,不能直接修改, 只能在触发器语句中使用。
v INSERTED保存新插入的数据和UPDATE后的数据副本。
v DELETED保存删除的数据和UPDATE更改前数据副本。
v 在用户执行数据的更改操作时, SQL Server自动创建和 管理
v 驻留在内存中。
v 结构同触发器所作用的基本表的结构。
v 只可以被触发器使用。
v 由系统维护,在触发器中像普通表一样查询,不能直接 对这两个临时表中的数据进行更改。
8
删除、插入、更改后数据副本的保存
v在执行DELETE操作时,被删除的数据被保 存到DELETED表中。它和执行操作的基本表 没有相同的行。
v在执行INSERT操作时,新插入的数据同时 被保存到INSERTED表中。基本表中新数据 行的副本。
v在执行UPDATE操作时,先从触发器表中删 除旧行,然后再插入新行。因此,将更改前 的数据保存到DELETED表中。将更改后的数 据行保存到INSERTED表。 9
8.2 后触发型触发器
v使用FOR或AFTER选项定义的触发器为后触 发的触发器,即只有在引发触发器执行的语 句中指定的操作都已成功执行,并且所有的 约束检查也成功完成后,才执行触发器。
v注意:不能在视图上定义AFTER触发器。
10
v CREATE TABLE Student
v (
v Sno CHAR(9) PRIMARY KEY,
v Sname CHAR(20) ,
v S
您可能关注的文档
最近下载
- 基于STM32的智能家居风扇设计(智能温控风扇).doc
- GB_T 43697-2024 数据安全技术 数据分类分级规则.docx
- SJG 134-2023 建设工程施工脚手架安全技术标准.docx
- 车展展会可行性分析报告.pptx VIP
- 生物竞赛国赛试题及答案.pdf VIP
- 分布式发电对配电网影响的研究.doc
- 内蒙古乌尼特矿业有限责任公司乌尼特煤矿接续生产环境影响报告书.doc
- 特种设备-维护保养记录(叉车-电动托盘堆垛车).docx
- 《多边形的内角和》 示范教学PPT课件【初中数学人教版八年级上册】.pptx
- 紧密型县域医疗卫生共同体消毒供应中心运营指南(2020年版 医联体建设).docx
文档评论(0)