第19章 事务管理.ppt_第1页
第19章 事务管理.ppt_第2页
第19章 事务管理.ppt_第3页
第19章 事务管理.ppt_第4页
第19章 事务管理.ppt_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

1、第19章 事务管理,事务是一系列命令的封装形式,也是数据库的基本对象。如果事务中的某一条命令执行不成功,则事务会进行取消或回滚操作,以保持数据的一致性。事务不是一个可视化对象,与视图不同,所以必须学会Transact-SQL语句后,再来学习事务管理。,19.1 事务的基本概念,在数据库操作过程中,如果某一事务成功,则在该事务中进行的所有数据修改均会提交,成为数据库中的永久组成部分。如果事务遇到错误且必须取消或回滚,则所有数据修改均被清除。,19.1.1 什么是事务,事务是数据库的某一工作单元执行的一系列操作。那什么样的语句才能算作一个工作单元呢?其必须包含4个属性:原子性、一致性、隔离性和持久

2、性,英文简称为ACID属性。只有具备这些属性,一个工作单元才能称之为一个事务。,19.1.2 各种模式的事务之区别,SQL Server 2008为将事务分为:自动提交模式、显式事务、隐式事务等模式。本节简要说明每个模式的概念和区别。 1自动提交模式 2显式事务 3隐性事务,19.2 管理事务,应用程序可以通过指定事务启动和结束的时间来管理事务。在SQL Server中,也可以使用SET语句或API函数来指定这些时间。本节就通过几个简单的操作来学习事务的一些控制,如启动事务、结束事务等。,19.2.1 启动事务,在SQL Server中,使用API函数和Transact-SQL语句,可以将事务

3、作为显式、自动提交或隐式事务来启动。下面介绍几种模式的主要启动方法。 (1)显式事务:通过API函数或BEGIN TRANSACTION语句来显式启动事务。 (2)自动提交事务:默认模式。每个Transact-SQL语句都在其完成后提交。不需要指定任何语句来控制事务,也不需要使用任何API函数或方法来自动提交事务。 (3)隐式事务:通过API函数或SET IMPLICIT_TRANSACTIONS ON语句,将隐性事务模式设置为打开。下个语句会自动启动一个新事务。该事务完成后,下一个语句又将自动启动一个新事务。,19.2.2 结束事务,在SQL Server中,可以使用COMMIT或ROLLB

4、ACK语句来结束事务,还通过API函数来结束事务。 COMMIT:如果事务各语句运行成功,则提交。COMMIT语句保证事务的所有修改,在数据库中都保持永久性。 ROLLBACK:如果事务在执行过程中出现错误,则取消或回滚事务。ROLLBACK语句会将数据返回到其在事务开始时所处的状态。,19.2.3 事务的错误处理,前面多次提到过ROLLBACK语句,其主要是负责回滚操作。在事务执行过程中,可能因为某个错误导致事务执行不成功,则SQL Server会自动回滚该事务,以保持数据的完整性和一致性。这种情况虽然比较少,但很关键,如网络突然中断、数据库突然发生变化或者数据冲突等。 如果执行了SET X

5、ACT_ABORT ON语句,则任何运行时语句错误,都会导致自动回滚当前事务。一种处理或捕获错误的有效工具是TRYCATCH构造。,19.2.4 事务中的SQL语句,并不是所有的SQL语句都能在事务中使用。,19.3 事务应用案例,SQL Server中的事务并没有可视化的工具来操作,不管是开始事务、提交事务还是回滚事务,都是通过执行Transact-SQL语句来完成的。,19.3.1 开始事务BEGIN TRANSACTION,开始事务是每个事务的起始点。BEGIN TRANSACTION使TRANCOUNT全局变量按1递增,其语法如下: 1BEGIN TRAN | TRANSACTION

6、2 transaction_name | tran_name_variable 3 WITH MARK description 4 5 ; ,19.3.2 标记事务,在BEGIN TRANSACTION语句中, WITH MARK用来标记事务。标记事务使事务名被置于事务日志中。只有当数据库由标记事务更新时,才在事务日志中放置标记。不修改数据的事务是不会被标记的。,19.3.3 提交事务COMMIT TRANSACTION,COMMIT用来提交事务,其位于事务的结束位置,其语法如下: 1COMMIT TRAN | TRANSACTION 2 transaction_name | tran_nam

7、e_variable 3 ; ,19.3.4 回滚事务ROLLBACK TRANSACTION,回滚事务指将显式事务或隐性事务,回滚到事务的起点或某个保存点,其语法为: 1ROLLBACK TRAN | TRANSACTION 2 transaction_name | tran_name_variable 3| savepoint_name | savepoint_variable 4 ; ,19.4.1 描述事物的特性和概念,事务是作为一个逻辑单元执行的一系列操作,一个逻辑工作单元必须有四个属性,称为 ACID(原子性、一致性、隔离性和持久性)属性,只有这样才能成为一个事务。 原子性 一致性 隔离性 持久性,19.4.2 写一个简单的事务,问题:有两个操作,同时更新和增加,两个操作同时进行,保证原子的一致。事务该怎么实现?比如: 表 A,字段num 表 B,字段love select * from 表b,19.5 小结,事务是数据库操作中最为重要的一个概念,也是最

温馨提示

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

评论

0/150

提交评论