怎样正确使用嵌套事务

lenya 2010-08-31 05:54:12
我建了一个存储过程a,在一个事务中递归调用a,如果出错就rollback.现在的问题是:
EXECUTE 后的事务计数指出缺少了 COMMIT 或 ROLLBACK TRANSACTION 语句。原计数 = 2,当前计数 = 0。
请教大虾,该怎么处理?
...全文
193 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
lenya 2010-09-03
  • 打赏
  • 举报
回复
谢谢各位,最终解决办法:
http://topic.csdn.net/t/20020411/16/638961.html
lenya 2010-09-01
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 guochengjun 的回复:]
最后一句rollback tran 不明确
第二层出显错误的话,得先回滚第二层,再回滚第一层
[/Quote]
这位老兄太帅了,那怎么回滚第二层事务呢?能让@@trancount减至某个值(非0)么?
GUOCHENGJUN 2010-09-01
  • 打赏
  • 举报
回复
最后一句rollback tran 不明确
第二层出显错误的话,得先回滚第二层,再回滚第一层
lenya 2010-09-01
  • 打赏
  • 举报
回复
多谢各位的热情,代码太多了,大概是这样的:
[code=SQL]

create procedure py_vmk_isto @rowcnt int
as
begin
begin tran whole
if @rowcnt > 0
begin
begin tran insto
............
execute @rc = py_vmk_isto @rowcnt
...........
commit tran insto
end

begin tran miss

commit tran miss

commit tran whole
return @rowcnt

error:
rollback tran
return -1
end
[/Quote]
现在实际问题是嵌套到第2层的时候,引发了rollback,才会有这样的错误,如果执行成功,就不会有这样的错误,该怎么处理?
lenya 2010-09-01
  • 打赏
  • 举报
回复
多谢各位的热情,代码太多了,大概是这样的:

create procedure py_vmk_isto @rowcnt int
as
begin
begin tran whole
if @rowcnt > 0
begin
begin tran insto
............
execute @rc = py_vmk_isto @rowcnt
...........
commit tran insto
end

begin tran miss

commit tran miss

commit tran whole
return @rowcnt

error:
rollback tran
return -1
end

现在实际问题是嵌套到第2层的时候,引发了rollback,才会有这样的错误,如果执行成功,就不会有这样的错误,该怎么处理?
lenya 2010-09-01
  • 打赏
  • 举报
回复
多谢各位的热情,代码太多了,大概是这样的:
create procedure py_vmk_isto @rowcnt int
as
begin
begin tran whole
if @rowcnt > 0
begin
begin tran insto
............
execute @rc = py_vmk_isto @rowcnt
...........
commit tran insto
end

begin tran miss

commit tran miss

commit tran whole
return @rowcnt

error:
rollback tran
return -1
end

现在实际问题是嵌套到第2层的时候,引发了rollback,才会有这样的错误,如果执行成功,就不会有这样的错误,该怎么处理?
永生天地 2010-08-31
  • 打赏
  • 举报
回复
估计是commit或rollback写多了
billpu 2010-08-31
  • 打赏
  • 举报
回复
一般都是事务没有推出正确,检查下程序,顺便说一下 递归嵌套32层
王向飞 2010-08-31
  • 打赏
  • 举报
回复
代码贴出来。

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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