1)任何人都可以解释如何在sql server中手动中断游标 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;