if while loop also having a break,if while loop hit break command i t comes out of the loop and if cursor hit break command,how it come entire out of the while loop for example: DECLARE @CursorTest TABLE ( idcol INT,fld1 INT,fld2 INT,fld3 CHAR(800) ) INSERT INTO @CursorTest (fld1,fld2,fld3) SELECT 1,RAND() * 100 * DATEPART(ms,GETDATE()),LEFT(REPLICATE(CAST(NEWID() AS VARCHAR(36)),30),800) DECLARE @Variable1 INT,@Variable2 INT DECLARE CursorName CURSOR FAST_FORWARD FOR SELECT idcol FROM @CursorTest OPEN CursorName FETCH NEXT FROM CursorName INTO @Variable1 WHILE @@FETCH_STATUS = 0 BEGIN if (@Variable1 =10) BEGIN BREAK END PRINT CAST(@Variable1 AS VARCHAR(5)) FETCH NEXT FROM CursorName INTO @Variable1 END CLOSE CursorName DEALLOCATE CursorName if cursor hit break command,how it come entire out of the while loop
如果while循环也有一个中断,如果while循环命中中断命令我退出循环并且如果光标命中break命令,它是如何完全退出while循环的
解决方法
你可以在WHILE循环中给出一些迭代光标的条件.第一个条件是@@ FETCH_STATUS,而其他条件就是你要打破循环
WHILE @@FETCH_STATUS = 0 OR @stopLoop = false BEGIN FETCH NEXT FROM Employee_Cursor; //your code if condition BEGIN @stopLoop = true END END; CLOSE Employee_Cursor;
使用BREAK语句
WHILE @@FETCH_STATUS = 0 BEGIN FETCH NEXT FROM Employee_Cursor; //your code if condition BEGIN BREAK END END; CLOSE Employee_Cursor;