存储过程事务

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

...全文
69 点赞 收藏 11
写回复
11 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
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
帮忙啊!大侠!
回复
相关推荐
发帖
疑难问题
创建于2007-09-28

2.1w+

社区成员

MS-SQL Server 疑难问题
申请成为版主
帖子事件
创建了帖子
2011-08-15 01:59
社区公告
暂无公告