游标
我要用到两层嵌套,能同时用两个游吗?
如果能,退出条件怎么写(@@fetch_status判断的是哪一个游标)?
break能推出几层循环?
问题点数:50、回复次数:5Top
1 楼Yang_(扬帆破浪)回复于 2002-06-13 14:23:20 得分 12
可以,在每个fetch后判断@@fetch_status,引用最近的fetch的游标状态。
BREAK
导致从最内层的 WHILE 循环中退出。将执行出现在 END 关键字后面的任何语句,END 关键字为循环结束标记。
Top
2 楼qybao(阿宝)回复于 2002-06-13 16:50:44 得分 13
DECLARE cur1 SCROLL CURSOR
FOR SELECT ...
OPEN cur1
FETCH FIRST FROM cur1 INTO ...
WHILE (@@fetch_status=0) --判断外游标
BEGIN
...
DECLARE cur2 SCROLL CURSOR
FOR SELECT ...
OPEN cur2
FETCH FIRST FROM cur2 INTO ...
WHILE (@@fetch_status=0) --判断内游标
BEGIN
...
BREAK --退出内游标循环
...
FETCH NEXT FROM cur2 INTO ... /* 游标走到这里,判断FETCH状态,最近一次是cur2 * 回到内循环/
END
CLOSE cur2
DEALLLOCATE cur2
FETCH NEXT FROM cur1 INTO ... /* 游标走到这里,判断FETCH状态,最近一次是 cur1 回到外循环 */
END
CLOSE cur1
DEALLOCATE cur1
@@fetch_status判断最近一次fetch状态,break退出最近的循环
Top
3 楼badtank(爱与宿命的连发枪)回复于 2002-06-13 19:06:44 得分 5
来晚了
帮你up一下挣点帮顶分。Top
4 楼tiger_qi(老虎)回复于 2002-06-14 03:01:23 得分 5
学习Top
5 楼leimin(黄山光明顶)回复于 2002-06-14 08:59:53 得分 15
嵌套游标会有性能的消耗,通过#TEMPTABLE过渡也是一种方法。Top




