



免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
在 SQL Server 中数据库事务处理是个重要的概念,也稍微有些不容易理解,很多 SQL 初学者编写的事务处理代码存往往存在漏洞,本文介绍了三种不同的方法,举例说明了如何在存储过程事务处理中编写正确的代码。在编写 SQL Server 事务相关的存储过程代码时,经常看到下面这样的写法: begin tran update statement 1 . update statement 2 . delete statement 3 . commit tran这样编写的SQL存在很大隐患。请看下面的例子: create table demo(id int not null) go begin tran insert into demo values (null) insert into demo values (2) commit tran go执行时会出现一个违反 not null 约束的错误信息,但随后又提示(1 row(s) affected)。 我们执行 select * from demo 后发现 insert into demo values(2) 却执行成功了。 这是什么原因呢? 原来 sql server 在发生 runtime 错误时,默认会 rollback 引起错误的语句,而继续执行后续语句。 如何避免这样的问题呢?有三种方法:1. 在事务语句最前面加上set xact_abort on set xact_abort on begin tran update statement 1 . update statement 2 . delete statement 3 . commit tran go当 xact_abort 选项为 on 时,sql server 在遇到错误时会终止执行并 rollback 整个事务。2. 在每个单独的DML语句执行后,立即判断执行状态,并做相应处理。 begin tran update statement 1 . if error 0 begin rollback tran goto labend end delete statement 2 . if error 0 begin rollback tran goto labend end commit tran labend: go3. 在SQL Server 2005中,可利用 try.catch 异常处理机制 begin tran begin try update statement 1 . delete statement 2 . end try begin catch if trancount 0 rollback tran end catch if trancount 0 commit tran go下面是个简单的存储过程,演示事务处理过程。 create procedure dbo.pr_tran_inproc as begin set nocount on begin tran update statement 1 . if error 0 begin rollback tran return -1 end delete statement 2 . i
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 46167-2025压裂用柔性软管和软管组合件规范
- GB 24537-2025坠落防护带柔性导轨的自锁器
- 文库发布:刺课件
- 化工企业节前安全培训课件
- 养好小金鱼教学课件
- 别亲我课件教学课件
- 初学者课件教学课件
- 响水综合智能营销方案(3篇)
- 兴义建设安全知识培训课件
- 初中教师安全校本培训课件
- CNAS-CC175-2017 基于ISOIEC 20000-1的服务管理体系认证机构要求
- 创新创业甜品店计划书
- 《钠离子电池简介》课件
- 十八项核心制度
- 情商与领导力课件
- 幼儿园保育员安全培训内容
- 《拒绝服务攻击》课件
- 2024年考研英语核心词汇
- 起重作业十不吊、八严禁
- 核电知识学生科普单选题100道及答案解析
- 钢筋混凝土污水管道施工工程施工组织设计方案
评论
0/150
提交评论