存储过程间调用?

jwdream2008 2011-07-18 12:28:23
各位好:
在存储过程中执行其他存储过程,如何保证事务一致性?
比如,同服务器同数据库上有存储过程:Proc_A和Proc_B两个存储过程,在存储过程Proc_A中,执行 EXEC Proc_B.
如果在执行Proc_B中出现错误,如何让整个Proc_A的所有操作都回滚?
希望指导?
...全文
101 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
水族杰纶 2011-07-18
  • 打赏
  • 举报
回复
--try
create proc pro_b
as
set xact_abort on
begin tran
update...
insert ...
exec pro_a --执行pro_a
commit tran
水族杰纶 2011-07-18
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 jwdream2008 的回复:]
引用 1 楼 acherat 的回复:
用显式事务控制!

我自己写的事务,begin tran ,但是Proc_A没回滚
[/Quote]
加上
set xact_abort on
没有
jwdream2008 2011-07-18
  • 打赏
  • 举报
回复
帮忙啊?
cd731107 2011-07-18
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 jwdream2008 的回复:]
引用 1 楼 acherat 的回复:
用显式事务控制!

我自己写的事务,begin tran ,但是Proc_A没回滚
[/Quote]
难道和事务的嵌套是两回事?
cd731107 2011-07-18
  • 打赏
  • 举报
回复
应该不用控制,记得在事务嵌套中,一旦回滚则强制回到最初的第一层,
存贮过程调用存贮过程,相当于事务嵌套,应该是一个效果
jwdream2008 2011-07-18
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 acherat 的回复:]
用显式事务控制!
[/Quote]
我自己写的事务,begin tran ,但是Proc_A没回滚
jwdream2008 2011-07-18
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 acherat 的回复:]
用显式事务控制!
[/Quote]
给个示例?
AcHerat 2011-07-18
  • 打赏
  • 举报
回复
用显式事务控制!

22,210

社区成员

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

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