触发器的创建和使用.ppt
《触发器的创建和使用.ppt》由会员分享,可在线阅读,更多相关《触发器的创建和使用.ppt(30页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第10章章 触发器的创建和使用触发器的创建和使用本章学习目标了解触发器和一般存储过程的主要区别了解触发器和一般存储过程的主要区别了解使用触发器的优点了解使用触发器的优点掌握创建触发器的方法掌握创建触发器的方法掌握查看触发器信息的方法掌握查看触发器信息的方法掌握修改和删除触发器的方法掌握修改和删除触发器的方法10.1 概述10.1.1 触发器的概念触触发发器器是是一一种种特特殊殊类类型型的的存存储储过过程程。一一般般的的存存储储过过程程通通过过存存储储过过程程名名称称被被直直接接调调用用,而而触触发发器器主主要要是是通通过过当当某某个个事事件件发发生生时时自自动动被被触触发发执执行行的的。触触
2、发发器器可可以以用用于于SQL Server约约束束、默默认认值值和和规规则则的的完完整整性性检检查查,还还可可以以完完成难以用普通约束实现的复杂功能。成难以用普通约束实现的复杂功能。10.1.1 触发器的概念当当创创建建数数据据库库对对象象或或在在数数据据表表中中插插入入记记录录、修修改改记记录录或或者者删删除除记记录录时时,SQL Server就就会会自自动动执执行行触触发发器器所所定定义义的的SQL语语句句,从从而而确确保保对对数数据据的的处处理理必必须须符符合合由由这这些些SQL语语句句所所定定义义的的规规则则。触触发发器器和和引引起起触触发发器器执执行行的的SQL语语句句被被当当作作
3、一一次次事事务务处处理理,如如果果这这次次事事务务未未获获得得成成功功,SQL Server会会自自动动返返回回该该事事务执行前的状态。务执行前的状态。10.1.2 触发器的优点使用触发器有以下优点:使用触发器有以下优点:触发器是自动的执行的。触发器是自动的执行的。触触发发器器可可以以通通过过数数据据库库中中的的相相关关表表进进行行层层叠叠更改。更改。触触发发器器可可以以强强制制限限制制。这这些些限限制制比比用用CHECK约束所定义的更复杂。约束所定义的更复杂。10.1.3 触发器的类型在在SQL Server 2005中中,触触发发器器可可以以分分为为DML触触发发器器和和DDL触触发发器器
4、两两种种,它它们们的的主主要要区别如下:区别如下:DDL触触发发器器用用于于响响应应各各种种数数据据定定义义语语言言(DDL)事事件件。这这些些事事件件主主要要对对应应于于 Transact-SQL 中中的的CREATE、ALTER 和和 DROP 语语句句,以以及及执执行行类类似似 DDL 操操作作的的某某些些系系统统存存储储过过程程。它它们们用用于于执执行行管管理理任任务务,并并强强制制影影响响数数据据库库的业务规则。的业务规则。10.1.3 触发器的类型DML触触发发器器是是在在用用户户使使用用数数据据操操作作语语言言(DML)事事件件编编辑辑数数据据时时发发生生。DML 事事件件是是针
5、针对对 表表 或或 视视 图图 的的 INSERT、UPDATE 或或 DELETE 语语句句。DML触触发发器器有有助助于于在在表表或或视视图图中中修修改改数数据据时时强强制制业业务务规规则则,扩扩展展数数据据完完整性。整性。10.1.3 触发器的类型DML触触发发器器又又分分为为AFTER触触发发器器和和INSTEAD OF触触发器两种:发器两种:AFTER触触发发器器:这这种种类类型型的的触触发发器器将将在在数数据据变变动动(INSERT、UPDATE和和DELETE操操作作)完完成成以以后后才被触发。才被触发。AFTER触发器只能在表上定义。触发器只能在表上定义。INSTEAD OF触
6、触发发器器:INSTEAD OF触触发发器器将将在在数数据据变变动动以以前前被被触触发发,并并取取代代变变动动数数据据的的操操作作,而而去去执执行行触触发发器器定定义义的的操操作作。INSTEAD OF触触发发器器可可以以在在表表或或视视图图上上定定义义。每每个个INSERT、UPDATE和和DELETE语句最多定义一个语句最多定义一个INSTEAD OF触发器。触发器。10.2 创建触发器在创建触发器之前应该考虑以下几个问题:在创建触发器之前应该考虑以下几个问题:CREATE TRIGGER 必必须须是是批批处处理理中中的的第第一一条语句。条语句。触发器只能在当前的数据库中创建。触发器只能在
7、当前的数据库中创建。TRUNCATE TABLE语语句句不不会会引引发发DELETE触发器。触发器。WRITETEXT语语 句句 不不 会会 引引 发发 INSERT或或UPDATE触发器。触发器。10.2.1 使用SQL Server管理控制台创建DML触发器在在SQL Server管管理理控控制制台台中中,展展开开指指定定的的服服务务器器和和数数据据库库,单单击击要要创创建建触触发发器器的的数数据据表表,右右击击其其中中的的“触触发发器器”文文件件夹夹。从从弹弹出出的的快快捷捷菜菜单单中中选选择择“新新建建触触发发器器”选选项项,会会出出现现新建触发器模板窗口。新建触发器模板窗口。10.2
8、.1 使用SQL Server管理控制台创建DML触发器当创建一个触发器时必须指定以下几项内容:当创建一个触发器时必须指定以下几项内容:触发器的名称;触发器的名称;在其上定义触发器的表;在其上定义触发器的表;触发器将何时激发;触发器将何时激发;执行触发操作的编程语句。执行触发操作的编程语句。10.2.1 使用SQL Server管理控制台创建DML触发器例例10-2-1:创建一个:创建一个INSERT触发器触发器“TR_Stu_Insert”,当在,当在T_STUDENT表中表中插入一条新记录时,触发该触发器,并给出插入一条新记录时,触发该触发器,并给出“你插入了一条新记录!你插入了一条新记录
9、!”的提示信息。的提示信息。例例10-2-2:创建了:创建了Stu_Insert触发器后,查触发器后,查看向看向T_STUDENT表中插入数据时,此触发表中插入数据时,此触发器所完成的功能。器所完成的功能。10.2.2 使用Transact-SQL语句创建DML触发器使使用用Transact-SQL语语言言中中的的CREATE TRIGGER命命令也可以创建令也可以创建DML触发器:触发器:CREATE TRIGGER schema_name.trigger_name ON table|view WITH ,.n FOR|AFTER|INSTEAD OF INSERT ,UPDATE ,DEL
10、ETE AS sql_statement ;,.n :=ENCRYPTION EXECUTE AS Clause 10.2.2 使用Transact-SQL语句创建DML触发器其中,各参数的说明如下:其中,各参数的说明如下:schema_name:DML触发器所属架构的名称。触发器所属架构的名称。trigger_name:触发器的名称。:触发器的名称。table|view:对其执行:对其执行DML触发器的表或视图。触发器的表或视图。WITH ENCRYPTION:对对CREATE TRIGGER语语句句的文本进行加密处理。的文本进行加密处理。EXECUTE AS:指指定定用用于于执执行行该该触
11、触发发器器的的安安全全上上下下文。文。10.2.2 使用Transact-SQL语句创建DML触发器FOR|AFTER:AFTER指指定定触触发发器器仅仅在在触触发发SQL语语句句中中指指定定的的所所有有操操作作都都已已成成功功执执行行时时才被触发。不能对视图定义才被触发。不能对视图定义AFTER触发器。触发器。INSTEAD OF:指指定定执执行行DML触触发发器器而而不不是是触发触发SQL语句。语句。DELETE,INSERT,UPDATE:指指定数据修改语句。必须至少指定一个选项。定数据修改语句。必须至少指定一个选项。sql_statement:触发条件和操作。:触发条件和操作。10.2
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 触发器 创建 使用
限制150内