存储过程事务

jwdream2008 2011-08-15 01:59:20
大侠:
需求如下:
一个主存储过程:Main_Proc,在主存储过程(Main_Proc)中分别调用两个子存储过程:Sub1_Porc和Sub2_Proc。如何做到:在调用两个子存储过程时,这两个数据库事务相互独立,即sub1_proc中出现错误,也不会影响sub2_proc中的操作?
不知可以否?

...全文
99 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
fancy0529 2011-08-21
  • 打赏
  • 举报
回复
可以!
唐诗三百首 2011-08-19
  • 打赏
  • 举报
回复
分很多种情况的:
主SP中是否加set xact_abort on?
SP1中是否加set xact_abort on?
SP2中是否加set xact_abort on?

排列组合:2*2*2=8种情况,测试一下哪种是你要的.
DB牛牛 2011-08-19
  • 打赏
  • 举报
回复
这样的问题写个示例自己测一下就行,有问的时间,我相信你已经能测试明白了,而且记的也比较深
--小F-- 2011-08-15
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 jwdream2008 的回复:]
引用 6 楼 wufeng4552 的回复:
引用 5 楼 jwdream2008 的回复:
引用 4 楼 wufeng4552 的回复:
如果
你没有用
set xact_abort on 去自动回滚
被调用的存储过程发生严重错误时,调用它的存储过程可以捕获错误,并可以继续执行下去
如果错误比较严重,就算用 set xact_abort on 来自动回滚事务
也无法回滚

能……
[/Quote]
ROLLBACK 不COMMIT就可以了
jwdream2008 2011-08-15
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 wufeng4552 的回复:]
引用 5 楼 jwdream2008 的回复:
引用 4 楼 wufeng4552 的回复:
如果
你没有用
set xact_abort on 去自动回滚
被调用的存储过程发生严重错误时,调用它的存储过程可以捕获错误,并可以继续执行下去
如果错误比较严重,就算用 set xact_abort on 来自动回滚事务
也无法回滚

能否给个示例!

create proc pr……
[/Quote]
请问:出错的子存储过程中的操作如何才能回滚啊?
水族杰纶 2011-08-15
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 jwdream2008 的回复:]
引用 4 楼 wufeng4552 的回复:
如果
你没有用
set xact_abort on 去自动回滚
被调用的存储过程发生严重错误时,调用它的存储过程可以捕获错误,并可以继续执行下去
如果错误比较严重,就算用 set xact_abort on 来自动回滚事务
也无法回滚

能否给个示例!
[/Quote]
create proc proc_main
as
exec proc_a --如果有錯誤,proc_b 接着执行
exec proc_b
jwdream2008 2011-08-15
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 wufeng4552 的回复:]
如果
你没有用
set xact_abort on 去自动回滚
被调用的存储过程发生严重错误时,调用它的存储过程可以捕获错误,并可以继续执行下去
如果错误比较严重,就算用 set xact_abort on 来自动回滚事务
也无法回滚
[/Quote]
能否给个示例!
水族杰纶 2011-08-15
  • 打赏
  • 举报
回复
如果
你没有用
set xact_abort on 去自动回滚
被调用的存储过程发生严重错误时,调用它的存储过程可以捕获错误,并可以继续执行下去
如果错误比较严重,就算用 set xact_abort on 来自动回滚事务
也无法回滚
水族杰纶 2011-08-15
  • 打赏
  • 举报
回复
可以.
chuanzhang5687 2011-08-15
  • 打赏
  • 举报
回复
路过,不懂,学习,帮顶!
jwdream2008 2011-08-15
  • 打赏
  • 举报
回复
帮忙啊!大侠!

22,207

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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