CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
英特尔®游戏设计大赛100美元现金周周送 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  MS-SQL Server >  基础类

求救,关于用游标更新数据。

楼主hyxyliuyan(不见不散)2003-08-01 13:33:19 在 MS-SQL Server / 基础类 提问

declare    
  @i   int,  
  @UID   varchar(12)  
   
  请问下面脚本,执行时为什么说是“游标是   READ   ONLY   的“的错误:  
  Declare   csrRst     Cursor   SCROLL   for  
  SELECT   ID   FROM   table1  
  OPEN   csrRst    
                  FETCH   NEXT   FROM   csrRst   INTO   @UID  
   
  WHILE   (@@FETCH_STATUS   =   0   )  
  BEGIN  
  update   TABLE1   SET   id=CAST(@i   AS   VARCHAR(12))   WHERE   CURRENT   OF   csrRst  
  set   @i=@i+1  
  FETCH   NEXT   FROM   csrRst   into   @UID  
  END    
  CLOSE   csrRst  
  DEALLOCATE   csrRst  
   
  请帮助解答!多谢了! 问题点数:40、回复次数:8Top

1 楼hjb111(无间波波哥)回复于 2003-08-01 13:42:28 得分 0

应当把@i赋初值!  
   
  set   @i=0Top

2 楼tj_dns(愉快的登山者)回复于 2003-08-01 13:44:21 得分 0

Declare   csrRst     Cursor   SCROLL   for  
  SELECT   ID   FROM   table1   for   updateTop

3 楼hyxyliuyan(不见不散)回复于 2003-08-01 13:51:39 得分 0

select   id   from   table1   for   update  
  我刚才试了一下,不行。  
  set   @i=0   我也试了,也是不行。Top

4 楼nboys()回复于 2003-08-01 13:56:13 得分 0

declare    
  @i   int,  
  @UID   varchar(12)  
  set   @i   =   0         --赋给@i一个初始值  
  Declare   csrRst     Cursor   SCROLL   for  
  SELECT   ID   FROM   table1  
  OPEN   csrRst    
                  FETCH   NEXT   FROM   csrRst   INTO   @UID  
   
  WHILE   (@@FETCH_STATUS   =   0   )  
  BEGIN  
  update   TABLE1   SET   id=CAST(@i   AS   VARCHAR(12))   WHERE   CURRENT   OF   csrRst  
  set   @i=@i+1  
  FETCH   NEXT   FROM   csrRst   into   @UID  
  END    
  CLOSE   csrRst  
  DEALLOCATE   csrRstTop

5 楼hyxyliuyan(不见不散)回复于 2003-08-01 14:08:01 得分 0

to--nboys()  
  你的方法我试过了,不行,还是提示“游标是   READ   ONLY   的”.Top

6 楼zclxyh(谁说我不在乎)回复于 2003-08-01 14:39:49 得分 30

试一下这一个  
  declare    
  @i   int,  
  @UID   varchar(12)  
  set   @i   =   0    
  Declare   csrRst     Cursor     for  
  SELECT   ID   FROM   table1  
  OPEN   csrRst    
                  FETCH   NEXT   FROM   csrRst   INTO   @UID  
   
  WHILE   (@@FETCH_STATUS   =   0   )  
  BEGIN  
  update   TABLE1   SET   id=CAST(@i   AS   VARCHAR(12))   WHERE   CURRENT   OF   csrRst  
  set   @i=@i+1  
  FETCH   NEXT   FROM   csrRst   into   @UID  
  END    
  CLOSE   csrRst  
  DEALLOCATE   csrRst  
  Top

7 楼chao778899(220330)回复于 2003-08-01 15:05:29 得分 10

declare    
  @i   int,  
  @UID   varchar(12)  
  set   @i   =   0    
  Declare   csrRst     Cursor     for  
  SELECT   ID   FROM   table1  
  OPEN   csrRst    
                  FETCH   NEXT   FROM   csrRst   INTO   @UID  
   
  WHILE   (@@FETCH_STATUS   =   0   )  
  BEGIN  
  update   TABLE1   SET   id=CAST(@i   AS   VARCHAR(12))   WHERE   ID=@UID  
  set   @i=@i+1  
  FETCH   NEXT   FROM   csrRst   into   @UID  
  END    
  CLOSE   csrRst  
  DEALLOCATE   csrRst  
  Top

8 楼hyxyliuyan(不见不散)回复于 2003-08-01 15:14:43 得分 0

to   zclxyh(常来)  
  现谢zclxyh(常来)  
  可以用了,能帮助解释一下吗?   只是去掉了"SCROLL",scroll,是不是指由标移动的方式,并没有指明游标是否可读。多谢高手指教!!Top

相关问题

  • 如何用游标更新数据。
  • 关于在游标操作中如何更新游标中的数据
  • 关于用游标更新的问题
  • 打开一个游标,更新数据表,怎么执行后没有起作用。
  • 用游标取不到数据!
  • 请问:在对一个linkserver的数据库上进行更新操作,是否不支持游标?
  • 用DataTable更新数据库???
  • 请教使用游标读多行数据的问题?
  • 游标使用
  • 游标使用?

关键词

  • csrrst
  • scroll forselect
  • fetch next
  • declare
  • cursor
  • varchar
  • id fromtable1
  • set

得分解答快速导航

  • 帖主:hyxyliuyan
  • zclxyh
  • chao778899

相关链接

  • SQL Server类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo