了解 SQL Cusros 语法

Understanding SQL Cusros syntax

我正在查看以下 link 中 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_STATUS = 0 如果你的变量没有 运行 的话,循环的 0 部分会让你退出。

不幸的是,我认为您可以将其用于游标。