任何人都可以解释如何在sql server和任何示例代码中手动中断游标

时间:2015-02-06 12:58:35

标签: sql-server cursor

1)任何人都可以解释如何在sql server中手动中断游标 2)任何示例代码。

2 个答案:

答案 0 :(得分:0)

  

使用变量来停止循环

    declare @exit bit=1 --change it to 0 inside the loop to 'break' it.
     WHILE @@FETCH_STATUS=0 and @exit=1
    begin
    if (condition)='your result'
    begin 
    set @exit=0
    end
    .
    .
    end

答案 1 :(得分:0)

以下是我经常使用的模式。

WHILE 1 = 1
BEGIN
    FETCH NEXT FROM SomeCursor INTO ...
    IF @@FETCH_STATUS = -1 BREAK;
    --some processing here
    IF <some-condition-here> = -1 BREAK;
    --some additional processing here
END;

以下是更常见的模式。有些人更喜欢这种方法来避免WHILE循环内部的流控制,但代价是额外的FETCH。这是由于DO...WHILE中缺少T-SQL

FETCH NEXT FROM SomeCursor INTO ...
WHILE @@FETCH_STATUS = 0
BEGIN
    --some processing here
    IF <some-condition-here> = -1 BREAK;
    --some additional processing here
    FETCH NEXT FROM SomeCursor INTO ...
END;