一个简单的回滚问题

LIHY70 2006-12-20 11:30:08
我有个存储过程,如下
......
begin tran
update t1 with(rowlock) set ....
update t2 with(rowlock) set...
update t3 with(rowlock) set...
update t4 with(rowlock) set...
commit tran
.............
我想问下如果在事务中有部分语句执行了,那么事务会自动回滚么?

如果不能自动回滚,那如何判断,进行回滚呢?如果不是语句错误,而是并发执行导致不能update,那么如何进行回滚呢?


...全文
188 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
yesyesyes 2006-12-20
  • 打赏
  • 举报
回复
一个事务中部分语句成功部分语句失败,整个事务回滚
peak_weng 2006-12-20
  • 打赏
  • 举报
回复
remark
LIHY70 2006-12-20
  • 打赏
  • 举报
回复
请问:
如果我部分语句没执行,而不是因为update语句出错,这样上面的方法可以用么?
leo_lesley 2006-12-20
  • 打赏
  • 举报
回复
begin tran
update t1 with(rowlock) set ....
update t2 with(rowlock) set...
update t3 with(rowlock) set...
update t4 with(rowlock) set...
IF @@error = 0
commit tran
else
rollback tran
leo_lesley 2006-12-20
  • 打赏
  • 举报
回复
begin tran
update t1 with(rowlock) set ....
update t2 with(rowlock) set...
update t3 with(rowlock) set...
update t4 with(rowlock) set...
IF @@error = 0
commit tran
else
rollback tran
end
LIHY70 2006-12-20
  • 打赏
  • 举报
回复
高手在哪里?
marco08 2006-12-20
  • 打赏
  • 举报
回复
如果部分语句没执行,而不是因为update语句出错,是會回滾整個事務的
LIHY70 2006-12-20
  • 打赏
  • 举报
回复
谢谢!非常感谢!
yesyesyes 2006-12-20
  • 打赏
  • 举报
回复
yes
LIHY70 2006-12-20
  • 打赏
  • 举报
回复
to :yesyesyes()
如我所写,如果部分语句失败,那我不做判断
(IF @@error = 0
commit tran
else
rollback tran)我的语句也会自动回滚的对吧?请高手指教,谢谢!

34,594

社区成员

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

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