单步存储过程的几个问题

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,是不是我的连接还在???如果是的话意思是每次调试都没有释放资源,或者说是关闭连接?
...全文
155 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
zlp321002 2005-08-13
  • 打赏
  • 举报
回复
--这个错误,你打下SQL SP4的补定,然后试试!
bigbigcai 2005-08-08
  • 打赏
  • 举报
回复
这个问题很难吗?????怎么没有人那

27,582

社区成员

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

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