还是事务的问题没解决!

hljhl 2003-11-01 03:54:45
在原来的代码上加上
BEGIN TRAN
........
IF @@ERROR<>0 GOTO ERROR

.......
IF @@ERROR<>0 GOTO ERROR
COMMIT TRAN
RETURN

ERROR:
ROLLBACK TRAN

后,我发现当前有问题退出时,后面的语句仍然运行,能不能介绍一下存储过程执行顺序,为什么前面的语句已提示出错,后面的语句还执行,加上事务怎么不管用?请指教!


...全文
42 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
zjcxc 元老 2003-11-01
  • 打赏
  • 举报
回复
--可以这样处理
begin tran
insert ...
if @@error goto lb_r

update ...
if @@error goto lb_r

delete ...
if @@error goto lb_r

commit
goto lb_ok

lb_r:
rollback tran
lb_ok:
txlicenhe 2003-11-01
  • 打赏
  • 举报
回复
要不然这样
begin tran
insert ...
if @@error <> 0
begin
rollback
return
end
update ...
if @@error <> 0
begin
rollback
return
end
delete ...
if @@error <> 0
begin
rollback
return
end
commit
welyngj 2003-11-01
  • 打赏
  • 举报
回复
set xact_abort on

34,874

社区成员

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

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