sqlserver事务和回滚

sabrina1013 2009-02-21 12:02:00
Declare @tranName varchar(32)
Select @tranName='MyTran'
Begin tran @tranName
delete from Products where ProductID=1
save tran save_point
delete from [Order Details] where ProductID=1
if @@error=0 then
begin
rollback tran save_point
commit tran MTran
end
else
commit tran MTran
Go
如果中途没有出错,这个执行顺序是什么?出错了其执行顺序又是什么?
...全文
104 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
sabrina1013 2009-02-21
  • 打赏
  • 举报
回复
自己顶
swwei2002 2009-02-21
  • 打赏
  • 举报
回复
没错执行begin ... end 块,有块执行 else
coolyayaya 2009-02-21
  • 打赏
  • 举报
回复
从上向下执行,没错的话不执行红色的,有错的话不执行绿色的
if @@error=0 then
begin
rollback tran save_point
commit tran MTran
end

else
commit tran MTran

Go
  • 打赏
  • 举报
回复
这和循环差不多

34,576

社区成员

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

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