我在以下链接中查看CURSOR
的示例:
http://blog.sqlauthority.com/2008/03/05/sql-server-simple-example-of-cursor-sample-cursor-part-2/
USE AdventureWorks
GO
DECLARE @ProductID INT
DECLARE @getProductID CURSOR
SET @getProductID = CURSOR FOR
SELECT ProductID
FROM Production.Product
OPEN @getProductID
FETCH NEXT FROM @getProductID INTO @ProductID
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT @ProductID
FETCH NEXT FROM @getProductID INTO @ProductID
END
CLOSE @getProductID
DEALLOCATE @getProductID
GO
这是一个非常简单的例子,但是我无法理解以下事项:
FETCH
?FETCH
。答案 0 :(得分:2)
第一次获取是在开始循环之前填充变量。
第二次获取是为循环的下一次迭代填充这些变量。如果你的变量用完了,那么循环的@@ FETCH_STATUS = 0部分会让你失望。
不幸的是,我认为你可以将其用于游标。