事务编程(教案).pptVIP

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
事务编程(教案)

11.2 事务编程 11.2.2 事务类型 事务是单个的工作单元。如果某一事务成功,则在该事务中进行的所有数据修改均会提交,成为数据库中的永久组成部分。如果事务遇到错误且必须取消或回滚,则所有数据修改均被清除。 SQL Server 以下列事务模式运行。 自动提交事务:每条单独的语句都是一个事务。 显式事务:每个事务均以 BEGIN TRANSACTION 语句显式开始,以 COMMIT 或 ROLLBACK 语句显式结束。 隐式事务:在前一个事务完成时新事务隐式启动,但每个事务仍以 COMMIT 或 ROLLBACK 语句显式完成。 隐式事务可以通过使用SET IMPLICIT_TRANSACTIONS [ON | OFF]语句来打开或关闭。当参数为ON时将设置为隐式事务模式,为OFF时,则返回自动提交事务模式。 批处理级事务:只能应用于多个活动结果集(MARS),在MARS会话中启动的 Transact-SQL显式或隐式事务变为批处理级事务。当批处理完成时没有提交或回滚的批处理级事务自动由SQL Server进行回滚。 11.2.3 事务语句 BEGIN DISTRIBUTED TRANSACTION (Transact-SQL) BEGIN TRANSACTION (Transact-SQL) COMMIT TRANSACTION (Transact-SQL) COMMIT WORK (Transact-SQL) ROLLBACK TRANSACTION (Transact-SQL) ROLLBACK WORK (Transact-SQL) SAVE TRANSACTION (Transact-SQL) SET IMPLICIT_TRANSACTIONS (Transact-SQL) @@TRANCOUNT (Transact-SQL) 11.2.4 自动提交事务 [例1] 若一个事务有编译错误,则自动回滚该事务所在批处理中的所有事务。 USE ST SET NOCOUNT ON IF OBJECT_ID(table1,U) IS NOT NULL DROP TABLE table1 GO CREATE TABLE table1(col1 INT PRIMARY KEY,col2 CHAR(2)) INSERT INTO table1 VALUES(1,xx) GO INSERT INTO table1 VALUES(2,aa) INSERT INTO table1 VALUSE(3,bb) --语法错 INSERT INTO table1 VALUES(4,cc) GO 运行以上程序,显示信息如下: 消息102,级别15,状态1,第2 行 VALUSE 附近有语法错误。 SELECT * FROM table1 查询结果: col1 col2 ----------- ---- 1 xx [例2] 若一个事务有运行错误,则只自动回滚该事务。 USE ST SET NOCOUNT ON IF OBJECT_ID(table1,U) IS NOT NULL DROP TABLE table1 GO CREATE TABLE table1(col1 INT PRIMARY KEY,col2 CHAR(2)) INSERT INTO table1 VALUES(1,xx) GO INSERT INTO table1 VALUES(2,aa) INSERT INTO table1 VALUES(1,bb) --运行错误,主键重复 INSERT INTO table1 VALUES(4,cc) GO 运行以上程序,显示信息如下: 消息2627,级别14,状态1,第2 行 违反了PRIMARY KEY 约束PK__table1__3213663B375B2DB9。不能在对象dbo.table1 中插入重复键。 语句已终止。 SELECT * FROM table1 11.2.5 显式事务 [例3] 事务内设置保存点。 USE ST IF OBJECT_ID(table1,U) IS NOT NULL DROP TABLE table1 CREATE TABLE table1(col1 INT PRIMARY KEY,col2 CHAR(2)) BEGIN TRANSACTION t1 --显式事务t1开始 INSERT INTO table1 VALUES(1,aa) SAVE TRANSACTION t1 --保存点1 INSER

文档评论(0)

baoyue + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档