单步存储过程的几个问题

bigbigcai 2005-08-08 12:07:17
我的存储过程:

CREATE PROCEDURE Test @ID nvarchar(12),@AddMoney money
AS
DECLARE @_money money
DECLARE @_欠款金额 money
DECLARE @_Temp money


SELECT

@_money=Money.dbo._Main._money, @_欠款金额=NM2000.dbo.l_reader._欠款金额
from
Money.dbo._Main,NM2000.dbo.l_reader

where

Money.dbo._Main._id=@ID and NM2000.dbo.l_reader._读者条码=@ID

if(@_欠款金额=0 or @_欠款金额>0 and @_money>=20 )

begin
set @_money=@AddMoney+@_money
update Money.dbo._Main set Money.dbo._Main._money=@_money where Money.dbo._Main._id=@ID
end

if(@_欠款金额>0 and @_money<20)
begin

if (@Addmoney+@_money<20)
begin
set @_money=@AddMoney+@_money
set @_欠款金额=@_欠款金额-@AddMoney
update Money.dbo._Main set Money.dbo._Main._money=@_money where Money.dbo._Main._id=@ID
update NM2000.dbo.l_reader set NM2000.dbo.l_reader._欠款金额=@_欠款金额 where NM2000.dbo.l_reader._读者条码=@ID
end

if (@Addmoney+@_money>=20)
begin
set @_Temp=20-@_money
set @_money=@AddMoney+@_money
set @_欠款金额=@_欠款金额-@_Temp
update Money.dbo._Main set Money.dbo._Main._money=@_money where Money.dbo._Main._id=@ID
update NM2000.dbo.l_reader set NM2000.dbo.l_reader._欠款金额=@_欠款金额 where NM2000.dbo.l_reader._读者条码=@ID
end

end
GO

单步的时候一到set就报:

ODBC: 消息 0,级别 19,状态 1
[Microsoft][ODBC SQL Server Driver][SQL Server]SqlDumpExceptionHandler: 进程 58 发生了严重的异常 c0000005 EXCEPTION_ACCESS_VIOLATION。SQL Server 将终止该进程。


[Microsoft][ODBC SQL Server Driver][Shared Memory]ConnectionRead (WrapperRead()).


服务器: 消息 11,级别 16,状态 1,行 0
[Microsoft][ODBC SQL Server Driver][Shared Memory]一般性网络错误。请检查网络文档。


如果过程中有事务是不是不能单步?应为我的过程原来有事务,但是我一单步到select就报错了
然后我把事务去掉就能走远点,这是为什么?

还有我单步的时候看到@@connections这个参数,这是不是写的连接数?我发现我每连一次它就+1,是不是我的连接还在???如果是的话意思是每次调试都没有释放资源,或者说是关闭连接?
...全文
135 点赞 收藏 2
写回复
2 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
zlp321002 2005-08-13
--这个错误,你打下SQL SP4的补定,然后试试!
回复
bigbigcai 2005-08-08
这个问题很难吗?????怎么没有人那
回复
相关推荐
发帖
应用实例
创建于2007-09-28

2.7w+

社区成员

MS-SQL Server 应用实例
申请成为版主
帖子事件
创建了帖子
2005-08-08 12:07
社区公告
暂无公告