Sql server 如何在光标上迭代
我有一个select语句,它返回一行。 在此之后,我编写了一个游标作为我的@@fetch\u状态为-1它现在才不会进入游标内部Sql server 如何在光标上迭代,sql-server,sql-server-2005,Sql Server,Sql Server 2005,我有一个select语句,它返回一行。 在此之后,我编写了一个游标作为我的@@fetch\u状态为-1它现在才不会进入游标内部 open cur_mkt print @init While (@init = 0) Begin fetch next from cur_mkt into @Desc, @Divisions print @@fetch_status if (@@fetch_status =-1) BRE
open cur_mkt
print @init
While (@init = 0)
Begin
fetch next from cur_mkt into
@Desc,
@Divisions
print @@fetch_status
if (@@fetch_status =-1)
BREAK
我有没有办法进入光标的内部,
请帮帮我。听起来你不需要光标(无论如何,你应该尽量避免光标)。如果要确定结果是否存在,可以执行以下操作:
SELECT @Desc = Desc, @Divisions = Divisions
FROM YourTable
WHERE ID = 1
IF ( @@ROWCOUNT > 0 )
BEGIN
-- Row was found
END
所以我建议不要使用游标
为了直接回答这个问题,您使用游标/迭代结果的方式如下:
DECLARE @A INTEGER
DECLARE cur_mkt CURSOR FOR
SELECT 1 AS A
UNION ALL
SELECT 2 AS A
OPEN cur_mkt
FETCH NEXT FROM cur_mkt INTO @A
WHILE (@@FETCH_STATUS = 0)
BEGIN
PRINT @A
FETCH NEXT FROM cur_mkt INTO @A
END
CLOSE cur_mkt
DEALLOCATE cur_mkt