| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 779 人关注过本帖
标题:关于嵌套事务处理的问题。
取消只看楼主 加入收藏
power6d
Rank: 1
等 级:新手上路
帖 子:162
专家分:0
注 册:2006-5-23
收藏
 问题点数:0 回复次数:1 
关于嵌套事务处理的问题。

我在试验嵌套存储过程中遇到了一个问题。请高手帮忙看一下。

Create Table Tmp1
(
Field1 Char(10) Null
)

Create Procedure Proc_1
As
Begin Transaction

Insert Into Tmp1 Values('power6d')
If @@Error<>0
Begin
RollBack Transaction
Return
End

Execute Proc_2
Return

Commit Transaction


Create Procedure Proc_2
As
Begin Transaction

Insert Into Tmp1 Values('pwer7d')
RollBack Transaction
Return

Commit Transaction

Execute Proc_1

我想试验在嵌套存储过程中,在内层事务中调用RollBack语句后,是不是会回滚到最外层Begin Transaction的开始位置,在运行之后,TMP1表的结果是我想看到的,但执行这Proc_1存储过程,总会报告错。错误内容如下:
(
服务器: 消息 266,级别 16,状态 2,过程 Proc_2,行 7
EXECUTE 后的事务计数指出缺少了 COMMIT 或 ROLLBACK TRANSACTION 语句。原计数 = 1,当前计数 = 0。
服务器: 消息 3903,级别 16,状态 1,过程 Proc_1,行 15
ROLLBACK TRANSACTION 请求没有对应的 BEGIN TRANSACTION。


请问这是为什么啊?

[此贴子已经被作者于2006-10-27 11:52:26编辑过]

搜索更多相关主题的帖子: 嵌套 事务 
2006-10-27 11:51
power6d
Rank: 1
等 级:新手上路
帖 子:162
专家分:0
注 册:2006-5-23
收藏
得分:0 

我先创建Proc_2,再创建Proc_1的.创建完之后再运行Execute Proc_1的.我想应该不是楼上您说的问题.


2006-10-29 14:00
快速回复:关于嵌套事务处理的问题。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.025336 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved