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

游标是动态的,请问有什么解决方案?

楼主rickywei(蓝火)2003-12-03 17:45:08 在 MS-SQL Server / 疑难问题 提问

我要使用游标,例子入下:  
  declare   tmp_cursor   cursor   for   select   1   from   tablename  
  declare   @i   int  
  open   cursor_insert  
  fetch   cursor_insert   into   @i  
  while   @@fetch_status=0  
  begin  
      print   @i  
   
      fetch   tmp_cursor   into   @i  
  end  
  close   tmp_cursor  
  deallocate   tmp_cursor  
   
  但是tablename却是动态的,也就是说tablename这个表是可变的,而且  
  会加上别的"WHERE"条件,或者"Order"条件。我该如何实现,注意:一定要使用游标,因为我要做计算。 问题点数:100、回复次数:12Top

1 楼CrazyFor(冬眠的鼹鼠)回复于 2003-12-03 17:52:43 得分 40

EXEC('  
  declare   tmp_cursor   cursor   for   select   1   from   '+@tablename+'  
  declare   @i   int  
  open   cursor_insert  
  fetch   cursor_insert   into   @i  
  while   @@fetch_status=0  
  begin  
      print   @i  
   
      fetch   tmp_cursor   into   @i  
  end  
  close   tmp_cursor  
  deallocate   tmp_cursor')  
  Top

2 楼rickywei(蓝火)回复于 2003-12-03 18:02:53 得分 0

你的写法很奇怪,不知道你自己试验过没有。呵呵。要是能通过我给你加200分Top

3 楼leimin(黄山光明顶)回复于 2003-12-03 18:04:34 得分 0

你是否可以将要建立CURSOR的表保存导一个表中,在通过脚本调用回比较好。Top

4 楼leimin(黄山光明顶)回复于 2003-12-03 18:05:47 得分 0

楼主你自己的脚本也很奇怪??  
   
  declare   tmp_cursor   cursor   for   select   1   from   tablename  
  declare   @i   int  
  open   cursor_insert   --???  
  fetch   cursor_insert   into   @i   ---???  
  while   @@fetch_status=0  
  begin  
      print   @i  
  ....  
  Top

5 楼youngby(C-love)回复于 2003-12-03 18:09:25 得分 0

markTop

6 楼rickywei(蓝火)回复于 2003-12-03 18:12:33 得分 0

你还真行,   CrazyFor(冬眠的鼹鼠)   的方法确实可以,只不过好像比较笨,不知道各位还有没有更加好的方式?谢谢CrazyFor(冬眠的鼹鼠)   ,结贴时给你加分Top

7 楼pengdali()回复于 2003-12-03 18:19:36 得分 40

exec('declare   tmp_cursor   cursor   for   select   1   from   tablename')  
   
  declare   @i   int  
  open   cursor_insert  
  fetch   cursor_insert   into   @i  
  while   @@fetch_status=0  
  begin  
      print   @i  
   
      fetch   tmp_cursor   into   @i  
  end  
  close   tmp_cursor  
  deallocate   tmp_cursorTop

8 楼pengdali()回复于 2003-12-03 18:20:03 得分 0

EXEC('declare   tmp_cursor   cursor   for   select   1   from   '+@tablename)  
   
  declare   @i   int  
  open   cursor_insert  
  fetch   cursor_insert   into   @i  
  while   @@fetch_status=0  
  begin  
      print   @i  
   
      fetch   tmp_cursor   into   @i  
  end  
  close   tmp_cursor  
  deallocate   tmp_cursorTop

9 楼rickywei(蓝火)回复于 2003-12-03 19:00:35 得分 0

thanks.问题解决Top

10 楼rickywei(蓝火)回复于 2003-12-03 19:00:36 得分 0

thanks.问题解决Top

11 楼Arionma()回复于 2003-12-03 19:15:15 得分 5

关键点就是读取动态表时必须用下面的格式  
  exec('语句'+表名)Top

12 楼binshan(Aben)回复于 2003-12-03 20:00:41 得分 15

EXEC('declare   tmp_cursor   cursor   for   select   1   from   '+@tablename)  
   
  declare   @i   int  
  open   cursor_insert   ---看不明cursor_insert是什么?  
  fetch   cursor_insert   into   @i   ---看不明cursor_insert是什么?  
  while   @@fetch_status=0  
  begin  
      print   @i  
   
      fetch   tmp_cursor   into   @i  
  end  
  close   tmp_cursor  
  deallocate   tmp_cursor  
   
  请教cursor_insert是什么?  
  Top

相关问题

  • 动态游标问题。。。。
  • 游标的动态执行
  • 动态游标问题
  • 这样的动态游标怎么写?
  • 关于动态游标的问题
  • 能不能创建动态已游标
  • 为什么游标会慢?
  • 问:什么是游标
  • 为什么不使用游标比使用游标要快?
  • 如何在sqlserver里使用动态游标

关键词

  • cursor
  • intopen
  • 游标
  • cursordeallocate
  • iendclose
  • tmp
  • fetch
  • insertfetch
  • iwhile
  • 动态

得分解答快速导航

  • 帖主:rickywei
  • CrazyFor
  • pengdali
  • Arionma
  • binshan

相关链接

  • SQL Server类图书

广告也精彩

反馈

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