SQL SERVER游标问题--所请求的行不在提取缓冲区内
请帮我看看下面的游标有什么问题: 说明:tab表中有字段ID,adress.现在要重新编排ID,adress列相同的记录共用同一个ID.第一条记录的ID已经确定为1,往后依次递增.
declare cur_tab cursor scroll for
select ID,address from tab
for update of ID
declare @xuhao1 varchar(15),@xuhao2 varchar(15),@addr1 varchar(15),@addr2 varchar(15)
open cur_tab
fetch next from cur_tab into @xuhao1,@addr1
while @@fetch_status=0
begin
fetch next from cur_tab into @xuhao2,@addr2
if @addr1=@addr2
update tab set ID=@xuhao1 where current of cur_tab
else
update tab set ID=@xuhao1+1 where current of cur_tab
set @xuhao1=@xuhao2
set @addr1=@addr2
end
close cur_tab
deallocate cur_tab
执行结果有这样的提示:
执行结果报错:
服务器: 消息 16930,级别 16,状态 1,行 10
所请求的行不在提取缓冲区内。
语句已终止。
查看结果,发现只增加了一个新的ID.这样看来是没有正常循环,但是又找不到哪里有毛病,哪位帮我看看,谢谢!