存储过程中事务的问题

zh430 2006-03-14 10:15:03
如果在嵌套调用两个以上存储过程时,可以保证事务吗?
比如说,在存储过程sp1调用存储过程sp2,两个存储过程各有一个事务,如果sp1失败后,sp2也会回滚吗?
PROCEDURE sp1
AS
BEGIN
.....

执行 sp2 (另外一个存储过程)
commit;
EXCEPTION
rollback;
END SP_Get_ExcursusList;
...全文
152 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
prcgolf 2006-03-15
  • 打赏
  • 举报
回复
up
开发者开聊 2006-03-14
  • 打赏
  • 举报
回复
如果sp2中没有commit和rollback的话,那么在sp1中调用sp2后再执行commit或rollback,也会提交或回滚sp2中的事务。

建议,不再在procedure里面进行事务处理

事务处理放在调用它的外部程序
cenlmmx 2006-03-14
  • 打赏
  • 举报
回复
不好意思,好象不会的,可以做个实验试试
cenlmmx 2006-03-14
  • 打赏
  • 举报
回复
会的
zh430 2006-03-14
  • 打赏
  • 举报
回复
如果SP2里有commit和rollback呢,sp2执行完commit后,sp1却rollback了,那么sp2会不会也rollback呢
bobfang 2006-03-14
  • 打赏
  • 举报
回复
如果sp2中没有commit和rollback的话,那么在sp1中调用sp2后再执行commit或rollback,也会提交或回滚sp2中的事务。
zh430 2006-03-14
  • 打赏
  • 举报
回复
那是说,两个存储过程都不要commit和rollback,在外部程序调用的地方使用外部程序的事务处理机制,是这样吗,这样做有什么问题没有

17,078

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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