SQL Server 2008数据库开发经典案例教程电子教案习题解答等吕玉桂 电子教案 第11章数据库事务.pptVIP

SQL Server 2008数据库开发经典案例教程电子教案习题解答等吕玉桂 电子教案 第11章数据库事务.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* * * 第11章 数据库事务 本章目标 理解事务的概念 理解事务的特性、分类 在SQLServer中启动、提交和回滚事务 掌握事务的隔离级别 为什么需要事务 事务能确保把对多个数据操作作为一个单元来处理 例如:银行转帐 问题:假设张三的银行卡有2000元,李四的卡有1000元,共计3000元。现在张三要转1000元给李四,则要更新张三的帐户,减少余额1000元,更新李四帐户余额,增加1000元。如果整个流程没有出错则最后张三余额1000元,李四2000元,共计3000元。数据和转帐之前是一致的,假设在减少了张三的余额1000后,系统掉电或者出现意外李四的帐户还没完成更新。则最终的数据2000元,那怎么解决? 事务的概念及特性 事务提供了一种机制、是一个操作序列,它包含了一组数据库操作命令,并且所有的命令作为一个整体一起向系统提交或撤消操作请求 事务是作为单个逻辑工作单元执行的一系列操作 事务的四个特性: 原子性(Atomicity):事务能确保把对多个数据修改作为一个单元来处理,也就是原子操作。 一致性(Consistency):当事务完成时,数据必须处于一致状态 隔离性(Isolation):对数据进行修改的所有并发事务是彼此隔离的。这表明事务必须是独立的,它不应以任何方式依赖或影响其他事务 持久性(Durability):当事务完成之后,它对于系统的影响是永久性的。 事务的分类 事务分类 显式事务 隐性事务 自动提交事务 显式事务:显式事务是显式地定义其开始和结束的事务 BEGIN TRANSACTION …数据库操作如:插入记录 …数据库操作如:删除记录 COMMIT TRANSACTION 事务的分类 隐性事务:通过Transact-SQL的 SET IMPLICIT_TRANSACTIONS ON 语句,将隐性事务模式设置为打开。 SET IMPLICIT_TRANSACTIONS ON GO /*第一次执行Insert 语句的时候将自动启动一个隐性事务*/ INSERT INTO ImpTran VALUES(1,aaa) INSERT INTO ImpTran VALUES(2,bbb) GO /*提交第一个事务*/ COMMIT TRANSACTION GO /*执行SELECT语句将启动第二个隐性事务*/ SELECT COUNT(*) FROM ImpTran GO INSERT INTO ImpTran VALUES(3,ccc) GO SELECT * FROM ImpTran GO /*提交第二个事务*/ COMMIT TRANSACTION GO SET IMPLICIT_TRANSACTIONS OFF GO 事务的分类 自动提交事务:所有Transact-SQL语句在完成时,都会提交或回滚。如果一条语句成功完成,则将其提交,如果遇到任何错误,则将其回滚; 默认操作模式 用T-SQL表示事务 Transact-SQL使用下列语句来管理事务 开始事务:BEGIN TRANSACTION 提交事务:COMMIT TRANSACTION 回滚(撤消)事务:ROLLBACK TRANSACTION 下列变量在事务处理中非常有用。 @@ERROR @@TRANCOUNT 事务的应用 示例:客户购买图书 USE BookShopDb GO --一个客户在销售员编号为的用户处购买了三种书,生成销售记录--- SET NOCOUNT ON --不显示受影响的行数信息 GO BEGIN TRANSACTION --开始事务 DECLARE @err INT --保存错误编号 PRINT 客户开始买书,事务开始 SET @err=0 --插入销售主表SalesMaster INSERT INTO SalesMaster VALUES(GETDATE(),001) --声明局部变量保存SalesMasterID SET @err=@err+@@ERROR DECLARE @SalesMasterID INT --获取最新的SalesMasterID SELECT @SalesMasterID=@@IDENTITY --购买三本书 INSERT INTO SalesDetails  VALUES(@SalesMasterID,B0001,1,0.9,45) SET @err=@err+@@ERROR INSERT INTO SalesDetails  VALUES(@SalesMasterID,B0003,1,1,118) SET @err=@err+@@ERROR INSERT INT

您可能关注的文档

文档评论(0)

118压缩包课件库 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档