第9章触发器-精品文档资料整理.ppt

上传人:安*** 文档编号:78982445 上传时间:2023-03-19 格式:PPT 页数:20 大小:201KB
返回 下载 相关 举报
第9章触发器-精品文档资料整理.ppt_第1页
第1页 / 共20页
第9章触发器-精品文档资料整理.ppt_第2页
第2页 / 共20页
点击查看更多>>
资源描述

《第9章触发器-精品文档资料整理.ppt》由会员分享,可在线阅读,更多相关《第9章触发器-精品文档资料整理.ppt(20页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第第9 9章章 触发器触发器触发器是由操作触发执行的存储过程,它将在一些条件触发器是由操作触发执行的存储过程,它将在一些条件满足时自动执行操作。触发器可以完成数据检测、同步数据满足时自动执行操作。触发器可以完成数据检测、同步数据等很多需要自动维护的操作。本章将主要介绍触发器的概念等很多需要自动维护的操作。本章将主要介绍触发器的概念与应用,这部分内容要求读者有一定的程序开发基础。与应用,这部分内容要求读者有一定的程序开发基础。9.1 9.1 触发器概述触发器概述实际上,触发器是一种特殊的存储过程。它在对表中的实际上,触发器是一种特殊的存储过程。它在对表中的记录执行特定的操作(如插入、更新、删除)

2、时被执行,也记录执行特定的操作(如插入、更新、删除)时被执行,也可以响应系统操作(如删除表、删除库)。触发器通常应用可以响应系统操作(如删除表、删除库)。触发器通常应用特殊的业务规则来保证数据的完整性。触发器的独有特征包特殊的业务规则来保证数据的完整性。触发器的独有特征包括赋予监视数据的操作(插入、更新、删除)、隐式事务控括赋予监视数据的操作(插入、更新、删除)、隐式事务控制等。制等。9.1.1 9.1.1 触发器的分类触发器的分类在在SQL Server 2008中,触发器可以分为两大类:中,触发器可以分为两大类:DML触发器和触发器和DDL触发器。触发器。lDML触发器:触发器:DML触发

3、器是当数据库服务器中发生数触发器是当数据库服务器中发生数据操作语言(据操作语言(Data Manipulation Language)事件时执行)事件时执行的存储过程。的存储过程。DML触发器又分为两类,即触发器又分为两类,即After触发器和触发器和Instead Of触发器。触发器。lDDL触发器:触发器:DDL触发器是在响应数据定义语言触发器是在响应数据定义语言(Data Definition Language)事件时执行的存储过程。)事件时执行的存储过程。DDL触发器一般用于执行数据库中的管理任务,审核和规范触发器一般用于执行数据库中的管理任务,审核和规范数据库操作、防止数据库表结构被

4、修改等。数据库操作、防止数据库表结构被修改等。9.1.2 9.1.2 触发器的作用触发器的作用触发器的主要作用就是能够实现由主键和外键所不能保触发器的主要作用就是能够实现由主键和外键所不能保证的复杂的参照完整性和数据的一致性。除此之外,触发器证的复杂的参照完整性和数据的一致性。除此之外,触发器还有其他很多有用的功能。还有其他很多有用的功能。1强化约束强化约束2跟踪变化跟踪变化3级联运行级联运行4存储过程的调用存储过程的调用9.2 9.2 使用使用DMLDML触发器触发器DML触发器是在发生数据操作语言事件时执行的触发触发器是在发生数据操作语言事件时执行的触发器,主要针对添加、修改、删除进行触发

5、,用以完成这些操器,主要针对添加、修改、删除进行触发,用以完成这些操作在引起数据变化后的完善工作。下面将讲解作在引起数据变化后的完善工作。下面将讲解DML触发器的触发器的原理及应用。原理及应用。9.2.1 DML9.2.1 DML触发器的工作原理触发器的工作原理在在SQL Server 2008中,为每个中,为每个DML触发器都定义了触发器都定义了两个特殊的表:一个是插入表,另一个是删除表。这两个表两个特殊的表:一个是插入表,另一个是删除表。这两个表是建立在数据库服务器的内存中的,它们都是由系统管理的是建立在数据库服务器的内存中的,它们都是由系统管理的逻辑表,而不是真正存储在数据库中的物理表。

6、对于这两个逻辑表,而不是真正存储在数据库中的物理表。对于这两个表,用户只有读取的权限,没有修改的权限。这两个表的结表,用户只有读取的权限,没有修改的权限。这两个表的结构与触发器所在数据表的结构是完全一致的。当触发器的工构与触发器所在数据表的结构是完全一致的。当触发器的工作完成之后,这两个表也将会从内存中删除。作完成之后,这两个表也将会从内存中删除。由于由于DML触发器分为触发器分为After和和Instead Of两类,下面分两类,下面分别讲解这两种触发器的工作原理。别讲解这两种触发器的工作原理。1After触发器的工作原理触发器的工作原理2Instead Of触发器的工作原理触发器的工作原理

7、9.2.2 9.2.2 创建创建DMLDML触发器触发器SQL语法提供了语法提供了CREATE TRIGGER语句创建触发器。语句创建触发器。9.2.3 9.2.3 触发器的运行验证触发器的运行验证新的触发器建立后,默认就开始运行了。下面通过一个新的触发器建立后,默认就开始运行了。下面通过一个示例进行验证,首先查询全部数据,执行以下语句。示例进行验证,首先查询全部数据,执行以下语句。SELECT*FROM StudentList9.2.4 9.2.4 修改修改DMLDML触发器触发器如果要对存储过程进行修改,就需要使用如果要对存储过程进行修改,就需要使用ALTER TRIGGER语句。语句。9

8、.2.5 9.2.5 禁用与启用禁用与启用DMLDML触发器触发器1禁用触发器禁用触发器当触发器暂时不用时,可以停止它对操作的响应。在当触发器暂时不用时,可以停止它对操作的响应。在SQL Server Management Studio中禁用触发器很简单,操作步骤如下。中禁用触发器很简单,操作步骤如下。(1)启动并登录启动并登录SQL Server Management Studio,在【对象资源管,在【对象资源管理器】面板中展开【理器】面板中展开【StudentMan】|【表】【表】|【dbo.StudentList】|【触发器】【触发器】分支,右击【分支,右击【StudentListDat

9、e】,在弹出的快捷菜单中选择【禁用】命令,】,在弹出的快捷菜单中选择【禁用】命令,弹出【禁用触发器】对话框。弹出【禁用触发器】对话框。(2)单击【关闭】按钮,触发器就被禁用了。单击【关闭】按钮,触发器就被禁用了。2启用触发器启用触发器如果要重新启用已禁用的触发器,操作步骤如下。如果要重新启用已禁用的触发器,操作步骤如下。(1)启动并登录启动并登录SQL Server Management Studio,在【对象资源管,在【对象资源管理器】面板中展开【理器】面板中展开【StudentMan】|【表】【表】|【dbo.StudentList】|【触发器】【触发器】分支,右击【分支,右击【Stude

10、ntListDate】,在弹出的快捷菜单中选择【启用】命令,】,在弹出的快捷菜单中选择【启用】命令,弹出【启用触发器】对话框。弹出【启用触发器】对话框。(2)单击【关闭】按钮,已禁用的触发器就重新启用了。单击【关闭】按钮,已禁用的触发器就重新启用了。9.2.6 9.2.6 删除删除DMLDML触发器触发器当触发器不再使用时,就可以删除它以节省系统资源。在当触发器不再使用时,就可以删除它以节省系统资源。在SQL Server Management Studio中删除触发器的操作步骤如下。中删除触发器的操作步骤如下。(1)启动并登录启动并登录SQL Server Management Studio

11、,在【对象,在【对象资源管理器】面板中展开【资源管理器】面板中展开【StudentMan】|【表】【表】|【dbo.StudentList】|【触发器】分支,右击【触发器】分支,右击【StudentListDate】,】,在弹出的快捷菜单中选择【删除】命令,弹出【删除对象】对话框。在弹出的快捷菜单中选择【删除】命令,弹出【删除对象】对话框。(2)单击【确定】按钮,触发器就被删除了。单击【确定】按钮,触发器就被删除了。9.3 9.3 使用使用DDLDDL触发器触发器DDL触发器是在发生数据定义语言事件时执行的触发触发器是在发生数据定义语言事件时执行的触发器,主要针对数据库、表等触发,用于完成这些

12、规范数据库器,主要针对数据库、表等触发,用于完成这些规范数据库的操作,或防止表结构被修改等操作。下面将讲解的操作,或防止表结构被修改等操作。下面将讲解DDL触发触发器的原理及应用。器的原理及应用。9.3.1 9.3.1 创建创建DLLDLL触发器触发器注意注意DDL触发器和触发器和DML触发器的区别,设计触发器的区别,设计DDL触发触发器与设计器与设计DML触发器也很类似。触发器也很类似。9.3.2 9.3.2 验证验证DDLDDL触发器触发器验证验证DDL触发器的操作步骤如下。触发器的操作步骤如下。(1)在在SQL Server Management Studio的工具栏中单的工具栏中单击【

13、新建查询】按钮,弹出新的查询窗口,如测试保证数据库击【新建查询】按钮,弹出新的查询窗口,如测试保证数据库StudentMna中不能删除表和修改表,在代码编辑区输入以下代中不能删除表和修改表,在代码编辑区输入以下代码。码。DROP TABLE StudentList(2)以上语句是要删除表以上语句是要删除表StudentList,单击【执行】按,单击【执行】按钮,系统提示不能删除数据表。钮,系统提示不能删除数据表。(3)另外一个测试是保证当前服务器中的所有数据库不另外一个测试是保证当前服务器中的所有数据库不能被删除,在代码编辑区输入以下代码。能被删除,在代码编辑区输入以下代码。DROP Data

14、Base StudentMan(4)以上语句是要删除数据库以上语句是要删除数据库StudentMan,单击【执行,单击【执行】按钮,系统提示不允许删除数据库。】按钮,系统提示不允许删除数据库。9.3.3 9.3.3 查看与修改查看与修改DDLDDL触发器触发器DDL触发器有两种,一种是作用在当前触发器有两种,一种是作用在当前SQL Server服务服务器上的,另一种是作用在当前数据库中的。这两种器上的,另一种是作用在当前数据库中的。这两种DDL触发器触发器在在SQL Server Management Studio中所在的位置是不同的。中所在的位置是不同的。9.4 9.4 触发器的应用技巧触发

15、器的应用技巧触发器的应用范围很广,使用概率也很高,触发器的应触发器的应用范围很广,使用概率也很高,触发器的应用也在不断出现新的技巧。下面介绍一些在触发器中常用的用也在不断出现新的技巧。下面介绍一些在触发器中常用的技巧,读者可以参考借鉴。技巧,读者可以参考借鉴。9.4.1 9.4.1 如何知道触发器修改了多少条记录如何知道触发器修改了多少条记录需要注意的是,一种操作类型(需要注意的是,一种操作类型(Insert、Update或或Delete)虽然可以激活多个触发器,但是每个操作类型在一次)虽然可以激活多个触发器,但是每个操作类型在一次操作时,对一个触发器只激活一次。例如,运行一个操作时,对一个触

16、发器只激活一次。例如,运行一个UPDATE语句,有可能一次更新了十条记录,但是对于语句,有可能一次更新了十条记录,但是对于After Update这这个触发器,只激活一次,而不是十次。但是在个触发器,只激活一次,而不是十次。但是在Inserted表和表和Deleted表里会有十条记录,此时只要利用表里会有十条记录,此时只要利用Rowcount这这个系统变量就可以知道更新了多少条记录。个系统变量就可以知道更新了多少条记录。9.4.2 9.4.2 如何知道插入记录的自动编号是多少如何知道插入记录的自动编号是多少在很多实际应用中,用户希望知道新插入的一条记录的在很多实际应用中,用户希望知道新插入的一

17、条记录的自动编号。这个功能在触发器中完成是最合适不过的。自动编号。这个功能在触发器中完成是最合适不过的。9.5 9.5 小结小结本章主要讲解了触发器的原理、创建和管理。本章的重本章主要讲解了触发器的原理、创建和管理。本章的重点在于了解触发器的执行原理,难点在于掌握点在于了解触发器的执行原理,难点在于掌握Deleted和和Inserted两个表的应用,触发器本身的功能全部依赖这两个两个表的应用,触发器本身的功能全部依赖这两个表进行实现。表进行实现。9.6 9.6 习题习题(1)对表)对表ClassInfo建立触发器,当建立触发器,当Name字段修改时字段修改时要把要把regdate字段的日期改为当前日期。字段的日期改为当前日期。(2)对表)对表ScoreInfo建立触发器,当建立触发器,当Score字段数据修字段数据修改时要把改时要把regdate字段的日期改为当前日期。字段的日期改为当前日期。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁