@@fetch_status的问题,游标还没有循环完就退出是怎么回事?

hongbo163 2008-02-27 01:32:56
WHILE(@@fetch_status=0)
BEGIN
......
Fetch Next From cursor_test
END

如上述的代码结构,我现在发现这个游标的循环不太稳定
还没有循环完毕就退出了,请问有什么可能的原因造成

这个症状不定时出现,没什么规律,同样的游标,有时候可以
循环完毕,有时候不行。
...全文
229 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
hongbo163 2008-02-27
  • 打赏
  • 举报
回复
我的语句大概是这样:


-- 取得审查记录
-- 找到本次审查的员工及每个员工的审查日期
DECLARE review_cursor CURSOR FOR
SELECT serialnumber,begindate,enddate FROM #rev_emp


OPEN review_cursor
FETCH NEXT FROM review_cursor INTO @serialnumber,@begindate,@enddate



-- 开始一批员工的审查(每个员工,一段开始时间,一段结束时间)
WHILE(@@FETCH_STATUS=0)
BEGIN


END
hongbo163 2008-02-27
  • 打赏
  • 举报
回复
很长,几百行,此外是公司的产品内的软件代码,也不方便贴出

请教各位:这种游标循环是根据@@fetch_status的值,也就是说退出循环的时候
@@fetch_status<>0 ,@@fetch_status<>0可能是游标到底了,也有可能是
Fext Next取值失败了。

那造成这种Fetch失败可能是因为什么呢?有什么写法可以让这个循环跳过有问题的地方


zjcxc 2008-02-27
  • 打赏
  • 举报
回复
http://blog.csdn.net/zjcxc/archive/2007/05/12/1606109.aspx参考我的 blog:
选择合适的游标类型
zjcxc 2008-02-27
  • 打赏
  • 举报
回复
你的游标是怎么定义的?
非静态游标会检查基础表的数据变化, 此数据变化可能会影响到游标的下一条记录的定位, 从而导致有些数据根本没有循环到
中国风 2008-02-27
  • 打赏
  • 举报
回复
@@FETCH_STATUS
返回被 FETCH 语句执行的最后游标的状态,而不是任何当前被连接打开的游标的状态。

返回值 描述
0 FETCH 语句成功。
-1 FETCH 语句失败或此行不在结果集中。
-2 被提取的行不存在。
中国风 2008-02-27
  • 打赏
  • 举报
回复
----应该不会,楼主把语句贴出来大家看看
wzy_love_sly 2008-02-27
  • 打赏
  • 举报
回复
帖全部代码,

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧