下载此文档

数据库事务与锁-课件(PPT讲稿).ppt


文档分类:IT计算机 | 页数:约31页 举报非法文档有奖
1/31
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/31 下载此文档
文档列表 文档介绍
事务与锁学习目标?掌握事务?掌握锁一、事务?事务是并发控制的基本单位。所谓事务, 就是一个操作序列,这些操作要么都执行, 要么都不执行,它是一个不可分割的工作单位。?如果某一事务成功,则在该事务中进行的所有数据修改均会提交,成为数据库中的永久组成部分。如果事务遇到错误且必须取消或回滚,则所有数据修改均被清除。 、事务的特性?原子性?一致性?隔离性?持久性 、事务的分类?(1)自动提交事务?每条单独的语句都是一个事务。?(2)显式事务?每个事务均以 BEGIN TRANSACTION 语句显式开始,MIT 或 ROLLBACK 语句显式结束。?(3)隐式事务?在前一个事务完成时新事务隐式启动,但每 MIT 或 ROLLBACK 语句显式完成。通过 Set Implicit_Transactions On 命令。 、自动提交事务? SQLServer2005 将一切都作为事务来处理,如果用户没有定义事务,它会自动定义用户或应用程序各种数据库操作的事务,这称之为自动提交事务,也是 SQLServer2005 默认的事务处理模式。?如: create table aa a(int not null) ? Insert into aa values(1) ? Insert into aa values(null) ? Insert into aa values(2) ?其结果是第一和第三条语句插入,第二条失败? SQLServer2005 在自动提交事务工作模式下,每条语句本身就是一个事务 、显式事务?显示事务是执行的 SQL 语句之前增加 begin transaction ,事务提交采 mit transaction ,事务回滚采用 rollback transaction ,保留事务点采用 save transaction ?比如: begin transaction ? insert into aa values(1) ? insert into aa values(null) ? IF @***@ERROR <> 0 ? BEGIN ? rollback transaction ? return ? END ? insert into aa values(2) ? commit transaction ?因为第二条语句的出错,导致三条语句都不成功。插入的知识点: TRY...CATCH ?对 Transact-SQL 实现类似于 C# 和 C++ 语言中的异常处理的错误处理。 Transact-SQL 语句组可以包含在 TRY 块中。如果 TRY 块内部发生错误,则会将控制传递给 CATCH 块中包含的另一个语句组。?改造如下: ? begin transaction ? BEGIN TRY ? insert into aa values(1) ? insert into aa values(null) ? insert into aa values(2) ? commit transaction ? END TRY ? BEGIN CATCH ? print ' 错误号为:'+cast(@***@error as varchar(10)) ? print ' 错误内容为:'+ERROR_MESSAGE() ? rollback transaction ? END CATCH 保留点的使用?保留点是事务内部的一个标识,可以做事务的局部回滚。?改造如下: ? begin transaction ? insert into aa values(1) ? Save transaction aa ? insert into aa values(3) ? insert into aa values(2) ? rollback transaction aa ? Commit transaction ?其结果是后两条得到了回滚,而第一条数据进行了提交。 、隐式事务?要改变 SQLServer2005 的显式事务缺省设置为隐式,需要采用如下的语句: ? set implicit_transactions on ?这样就相当于每个 delete 、 update 、 insert 语句都开始一个 begin transaction, mit transaction 或者 rollback transaction 来进行结束事务。?可以尝试 delete from aa 后,再打开一个会话,去 select * from aa ,发现了什么? ?结论是阻塞锁的发生,所以对于一个事务的结束是网络编程对数据库操作的必须注意的

数据库事务与锁-课件(PPT讲稿) 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数31
  • 收藏数0 收藏
  • 顶次数0
  • 上传人huiwei2002
  • 文件大小0 KB
  • 时间2016-03-27