想问一下。为什么在SQL2000的存储过程里面用WHILE循环有时候会出错。。以下是原代码
k886 2008-12-10 02:00:02 下面这个代码很怪异的是如果同时只有一个人在运行这个程序的话不会出现错误的情况,可是只要人一多过1个就有可能发生运行过程中存储过程整个出错的情况。。
@odrf_rowversion 定义为rowversion 类型,其它变量为整型。就是不知道它为什么会发生崩溃的情况,那位大虾知道的说声。另我是把这段程序放在游标的循环中的。
while @write_s<>0 and @write_i<40000
begin
select @odrf_rowversion=odrf_rowversion ,@write_s=odrf_writes from table_odrf where odrf_no=@sl_prdname
if @write_s=0
begin
update table_odrf set odrf_writes=1 where odrf_rowversion=@odrf_rowversion
select @rowi=@@rowcount
if @rowi<>0
set @write_i=40000
else
set @write_s=1
end
else
begin
set @write_s=1
end
set @write_i=@write_i+1
end