| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 937 人关注过本帖
标题:SQL SERVER游标问题--所请求的行不在提取缓冲区内
取消只看楼主 加入收藏
qianliemao
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2010-1-30
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:1 
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.这样看来是没有正常循环,但是又找不到哪里有毛病,哪位帮我看看,谢谢!
搜索更多相关主题的帖子: SERVER 游标 SQL 请求 缓冲 
2010-01-30 21:03
qianliemao
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2010-1-30
收藏
得分:0 
谢谢楼上,这样不报错,不过结果还是不对.
按楼上给的测试数据,执行结果中ID 应该依次为 1,1,1,2
但是实际执行结果是:                        1,1,2,3

可见还是没有达到目的!
2010-01-31 15:59
快速回复:SQL SERVER游标问题--所请求的行不在提取缓冲区内
数据加载中...
 
   



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

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