第9章使用触发器和事务_第1页
第9章使用触发器和事务_第2页
第9章使用触发器和事务_第3页
第9章使用触发器和事务_第4页
第9章使用触发器和事务_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

9.1创建触发器9.1.1触发器在SQLServer中,触发器是一种通过事件进行触发而被执行的专用类型的存储过程.

触发器是一个功能强大的工具,它与表格紧密相连,在表中数据发生变化时自动强制执行。9.1.2触发器的作用触发器的主要作用是实现由主键和外键所不能保证的复杂的参照完整性和数据一致性。除此之外,触发器还有其它许多不同的功能。执行更加复杂的约束操作。级联更改数据库中相关的数据表。返回自定义的错误信息。比较数据库修改前后数据的状态。维护规范化数据。9.1.3触发器的分类

在SQLServer2005中,触发器可以分为DML触发器和DDL触发器两种类型。DDL触发器是当数据库服务器中发生数据定义语言(DDL)事件时执行的存储过程。这些事件主要对应于T-SQL中的CREATE、ALTER和DROP语句,以及执行类似DDL操作的某些系统存储过程。DML触发器是当数据库服务器中发生数据操作语言(DML)事件时执行的存储过程。DML事件包括在指定表或视图中修改数据的INSERT语句、UPDATE语句或DELETE语句。9.1.3触发器的分类

DML触发器又分为AFTER触发器和INSTEADOF触发器两种类型。AFTER触发器在数据变动(INSERT、UPDATE和DELETE操作)完成以后才被触发。INSTEADOF触发器在数据变动以前被触发,并取代变动数据的操作,而去执行触发器定义的操作。9.1.4使用T-SQL语句创建触发器使用T-SQL语句CREATETRIGGER创建触发器的基本语法格式如下:CREATETRIGGER触发器名ON{表名|视图名}[WITHENCRYPTION]{FOR|AFTER|INSTEADOF}{[INSERT],[UPDATE],[DELETE]}ASIFUPDATE(列名)[{AND|OR}UPDATE(列名)…]SQL语句9.1.4使用T-SQL语句创建触发器其中各参数含义如下:WITHENCRYPTION:加密触发器的文本。AFTER:指定在对数据表的相关操作之后,触发器被触发。INSTEADOF:指定执行触发器而不是执行触发语句,从而替代触发语句的操作。{[INSERT],[UPDATE],[DELETE]}:指定在表或视图上执行哪些数据修改语句时激活触发器的关键字,必须至少指定一个选项。IFUPDATE:指定对表内某列做增加或修改内容时,触发器才起作用,它可以指定两个以上列,列名前可以不加表名。SQL语句:指定触发器执行的条件和动作。9.1.5使用SSMS创建触发器使用SQLServerManagementStudio创建触发器的基本步骤演示。9.2管理与维护触发器9.2.1查看触发器信息触发器被创建以后,它的名称存放在系统表sysobjects中,它的创建源代码存放在syscomments系统表中。(1)查看表中的触发器信息可以使用系统存储过程sp_helptrigger查看指定表中所定义的触发器及它们的类型。(2)查看触发器定义可以使用系统存储过程sp_helptext查看指定触发器的定义文本。9.2.1查看触发器信息(3)查看触发器的所有者和创建时间可以使用系统存储过程sp_help查看触发器的所有者和创建时间。9.2.2修改触发器(1)使用SSMS修改触发器定义使用SQLServerManagementStudio修改触发器定义的基本步骤演示。(2)使用存储过程sp_rename重命名触发器使用存储过程sp_rename重命名触发器的语法格式为:sp_rename

原名称,新名称9.2.2修改触发器(3)使用T-SQL语句修改触发器正文使用T-SQL语句ALTERTRIGGER可以修改触发器,具体语法形式如下:ALTERTRIGGER触发器名ON{表名|视图名}[WITHENCRYPTION]{FOR|AFTER|INSTEADOF}{[INSERT],[UPDATE],[DELETE]}ASIFUPDATE(列名)[{AND|OR}UPDATE(列名)…]SQL语句9.2.3删除触发器(1)使用SQL语句的DROPTRIGGER删除指定的触发器,其语法格式为:DROPTRIGGER触发器名(2)删除触发器所在的表时,SQLServer将自动删除与该表相关的触发器。(3)在“对象资源管理器”中右键单击需要删除的触发器名称,在弹出的菜单中选择“删除”命令即可。9.2.4禁止和启用触发器使用T-SQL语句禁止和启用触发器的基本语法如下:ALTERTABLE表名{ENABLE|DISABLE}TRIGGER{ALL|触发器名[,…n]}其中:ENABLE:启用触发器。DISABLE:禁止触发器。ALL:指定启用或禁止表中所有的触发器。9.3了解事务9.3.1事务事务是由一系列的数据查询操作或更新操作构成,可以看作单个处理单元。如果某一事务执行,则在该事务中的所有操作均会执行,记录在数据库中,成为持久的组成部分。如果遇到问题,则必须全部取消或回滚,所有处理均被清除。9.3.2事务的特征原子性:事务必须是原子工作单元,对于其数据修改,要么全都执行,要么全部不执行。一致性:事务结束时,必须使所有数据处于一致性状态。隔离性:为了提高事务的吞吐率,大多数DBMS允许同时执行多个事务,就像分时操作系统为了充分利用系统资源,同时执行多个进程一样。持久性:事务完成之后,它对于系统的影响是永久性的,该修改即使出现系统故障也将一直保持。9.3.3事务模式(1)自动提交事务:每条单独的语句都是一个事务。(2)显式事务:每个事务均以BEGINTRANSACTION语句显式开始,以COMMIT或ROLLBACK语句显式结束。(3)隐式事务:在前一个事务完成时新事务隐式启动,但每个事务仍以COMMIT或ROLLBACK语句显式完成。(4)批处理级事务:只能应用于多个活动结果集(MARS),在MARS会话中启动的T-SQL显式或隐式事务变为批处理级事务。当批处理完成时没有提交或回滚的批处理级事务自动由SQLServer进行回滚。9.3.4自动事务自动事务模式为系统默认的事务管理模式。在自动事务模式下,每个T-SQL语句在成功执行完成后,都被自动提交。如果遇到错误,则自动回滚该语句。9.3.5显式事务显式事务由用户在其中定义事务的启动和结束。(1)建立事务建立事务的基本语法格式如下:BEGINTRANSACTION[事务名]该语句标记一个显式本地事务的起始点。9.3.5显式事务(2)提交事务提交事务的基本语法格式如下:COMMITTRANSACTION[事务名]该语句标志一个成功的显式事务(或隐式事务)的完成。(3)回滚事务回滚事务的基本语法格式如下:ROLLBACKTRANSACTION

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论