- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第8章 触发器 主要内容: 总体要求: 了解触发器的概念、功能和优点 熟练掌握触发器的创建方法 熟练掌握存储过程的执行方法 掌握查看和修改触发器的方法 掌握禁用、启用和删除触发器的方法 8.1 触发器简介 触发器(Trigger)是一种特殊类型的存储过程,是一系列当在表中的数据进行修改时要执行的SQL语句的集合,触发器与表紧密相联,在表中数据发生变化时自动强制执行。它有助于更好地维护数据库的完整性。 触发器是依存于表的数据库对象,在表执行修改操作(插入/更新/删除)时自动执行,即是通过事件进行触发而被执行的. 而存储过程可以通过存储过程名称而被直接调用(execute)。 触发器的作用 强化约束 跟踪变化 级联运行 存储过程的调用 触发器的优点 触发器是自动执行的,当表中的数据做了任何修改之后立即被激活。 触发器可以通过数据库中的相关表进行层叠更改。 触发器可以强制限制,这些限制比用CHECK约束所定义的更复杂。与CHECK约束不同的是,触发器可以引用其他表中的列。 触发器与存储过程的区别 触发器与存储过程的主要区别在于触发器的运行方式。存储过程必须由用户、应用程序或者触发器来显式地调用并执行,而触发器是当特定事件出现的时候,自动执行或者被激活的,与连接到数据库中的用户或应用程序无关。 触发器的分类 根据服务器或数据库中调用触发器的操作不同,触发器分为DML触发器和DDL触发器。 DML触发器 DML触发器是当数据库服务器中发生数据操作语言(DML)事件时要执行的操作。DML事件包括对表或视图发出的UPDATE、INSERT或DELETE语句。 DDL触发器 DDL触发器是一种特殊的触发器,它在响应数据定义语言(DDL)语句时触发。这些语句主要是以CREATE、ALTER和DROP开头的语句。 inserted表和deleted表 每个触发器都有两个特殊的表:inserted表和deleted表。这两个表都是逻辑表,存储在内存中,而不是存储在数据库中。 Inserted表中存储着被INSERT和UPDATE语句影响的新的数据行。执行INSERT或UPDATE语句时,新的数据行被添加到基本表中,同时这些数据行的备份被复制到Inserted临时表中。 Deleted表用于存储DELETE和UPDATE语句所影响的旧的数据行。在执行DELETE或UPDATE语句时,行从触发器表中删除,并存放到deleted表中。deleted表和触发器表通常没有相同的行。 8.2 创建触发器 在SQL Server中,可以使用对象资源管理器或者Transact-SQL语句创建触发器。 创建触发器时应注意如下事项: CREATE TRIGGER语句必须是批处理中的第一个语句。 创建触发器的权限默认分配给表的所有者,且不能将该权限转给其他用户。 触发器为数据库对象,其名称必须遵循标识符的命名规则。 只能在当前数据库中创建触发器,但触发器可以引用当前数据库以外的对象。 触发器可以参照视图或者临时表,但不能在视图或临时表上创建触发器,而只能在基表或创建视图的表上创建触发器。 一个触发器只能对应一个表,这是由触发器的机制决定的。 WRITETEXT语句不能触发INSERT或UPDATE型的触发器。 8.2.1 使用对象资源管理器创建触发器 【例8-1】 使用对象资源管理器为“Teaching”数据库的“Zy”表创建一个名为 “tr_insert”的触发器,用来在添加记录后显示提示信息的 。 8.2.2使用Transact-SQL语句创建DML触发器 其语法形式如下: CREATE TRIGGER trigger_name ON { table | view } { { { FOR | AFTER | INSTEAD OF } { [DELETE] [ , ] [ INSERT ] [ , ] [ UPDATE ] } ?????? ?? AS ??????? sql_statement[...n] ????} ?} 【例8-2】 为“Teaching”数据库的“Zy”表创建一个在删除记录时,显示“XX专业已被删除”的提示信息。 USE Teaching GO CREATE TRIGGER Zy_delete ON Zy FOR DELETE AS BEGIN DECLARE @zy VARCHAR(20) SELECT @zy=zym FROM DELETED PRINT @zy+专业已被删除! END GO 【例8-3】 为“T
您可能关注的文档
- 新SQL Server 2005数据库应用技术 教学课件 王亚楠 第9章 视图.ppt
- 新SQL Server 2005数据库应用技术 教学课件 王亚楠 第10章 存储过程.ppt
- 新SQL Server 2005数据库应用技术 教学课件 王亚楠 第11章 触发器.ppt
- 新SQL Server 2005数据库应用技术 教学课件 王亚楠 第12章 T SQL高级应用.ppt
- 新SQL Server 2005数据库应用技术 教学课件 王亚楠 第13章 安全管理.ppt
- 新SQL Server 2005数据库应用技术 教学课件 王亚楠 第14章 数据库应用系统开发技术.ppt
- 新SQL Server 2008 数据库案例教程 教学课件 于斌 第1章 数据库基础知识.ppt
- 新SQL Server 2008 数据库案例教程 教学课件 于斌 第2章 SQL Server 2008简介.ppt
- 新SQL Server 2008 数据库案例教程 教学课件 于斌 第3章 T SQL语言.ppt
- 新SQL Server 2008 数据库案例教程 教学课件 于斌 第4章 数据库的创建与管理.ppt
- 新SQL Server数据库基础教程 教学课件 刘丽 第9章.ppt
- 新SQL Server数据库基础教程 教学课件 刘丽 第10章.ppt
- 新SQL Server数据库应用项目化教程 教学课件 张福堂 主编 项目三 管理图书管理数据库.ppt
- 新SQL Server数据库应用项目化教程 教学课件 张福堂 主编 项目四 开发图书管理数据库.ppt
- 新SQL Server数据库应用项目化教程 教学课件 张福堂 主编 项目一 创建图书管理数据库.ppt
- 新TCP IP协议分析及应用 教学课件 杨延双 张建标 第1 2章.ppt
- 新TCP IP协议分析及应用 教学课件 杨延双 张建标 第3章 网际协议.ppt
- 新TCP IP协议分析及应用 教学课件 杨延双 张建标 第4章 路由选择协议.ppt
- 新TCP IP协议分析及应用 教学课件 杨延双 张建标 第5章 Internet控制协议.ppt
- 新TCP IP协议分析及应用 教学课件 杨延双 张建标 第6章 多播和Internet组管理协议.ppt
文档评论(0)