事务提交问题

linguojin11 2009-11-25 02:08:01
在存储过程种我们经常会用到事务的处理,一个批处理中的执行语句只要一个有出错感觉好像就全部回

滚,这种情况下用begin tran与commit tran感觉起不到作用。不知道能否举个简单例子来体现下用处?
...全文
93 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
Rotel-刘志东 2009-11-25
  • 打赏
  • 举报
回复
if(@@error<>0)
rollback tran
else
commit tran
end
linguojin11 2009-11-25
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 colacat911 的回复:]
引用 6 楼 linguojin11 的回复:
引用 5 楼 fredrickhu 的回复:
if(@@error <>0)
rollback tran
else
commit tran
end


这样是可以,但是我感觉@@error=0时一般时语法时出现了错误,本来就应该会中断。。。。不知道是何用意?》

谢谢


@@error=0?语法错误的话根本不会执行语句,直接中断,这种情况下是写的语句的问题,不是事务的问题
[/Quote]
不好意思。。上面打错字了,应该是@@error<>0时时异常。事务捕获的时什么异常?不包括这个吗
忆轩辕 2009-11-25
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 linguojin11 的回复:]
引用 5 楼 fredrickhu 的回复:
if(@@error <>0)
rollback tran
else
commit tran
end


这样是可以,但是我感觉@@error=0时一般时语法时出现了错误,本来就应该会中断。。。。不知道是何用意?》

谢谢
[/Quote]

@@error=0?语法错误的话根本不会执行语句,直接中断,这种情况下是写的语句的问题,不是事务的问题
fwacky 2009-11-25
  • 打赏
  • 举报
回复

//我像问的重点是:一出现异常的话系统自动就中断了,感觉不到这个事务的使用。。。
//程序里加事务!
linguojin11 2009-11-25
  • 打赏
  • 举报
回复
有大哥帮下吗
linguojin11 2009-11-25
  • 打赏
  • 举报
回复
我像问的重点是:一出现异常的话系统自动就中断了,感觉不到这个事务的使用。。。
linguojin11 2009-11-25
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 fredrickhu 的回复:]
if(@@error <>0)
rollback tran
else
commit tran
end

[/Quote]
这样是可以,但是我感觉@@error=0时一般时语法时出现了错误,本来就应该会中断。。。。不知道是何用意?》

谢谢
--小F-- 2009-11-25
  • 打赏
  • 举报
回复
if(@@error <>0)
rollback tran
else
commit tran
end
Ann99 2009-11-25
  • 打赏
  • 举报
回复
begin tran
操作...
if(@@error <>0)
rollback tran
else
commit tran
end
ztao1212 2009-11-25
  • 打赏
  • 举报
回复
二楼说的很对
快乐_石头 2009-11-25
  • 打赏
  • 举报
回复
SET XACT_ABORT  ON 
begin tran
update table ……
insert table ……
if(@@error <>0)
rollback tran
else
commit tran
end
qiqi860819 2009-11-25
  • 打赏
  • 举报
回复
begin tran
update table ……
insert table ……
if(@@error<>0)
rollback tran
else
commit tran
end

34,593

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧