我有一个返回单行的select语句。 之后我写了一个游标,就像我@@ fetch_status是-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)
BREAK
有什么方法可以进入光标, 请帮帮我。
答案 0 :(得分:11)
这听起来不像你需要一个光标(你应该尽量避免使用它)。如果你确定存在结果,你可以这样做:
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