1
我在看一個例子CURSOR
以下鏈接:瞭解SQL Cusros語法
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
? - 我們看到它在打開遊標時發生,然後在while循環中發生相同的確切
FETCH
。 - 有什麼我們可以做的,使代碼更清潔一點,少一些?
你想只有遊標做這個或任何其他方法。嘗試儘可能避免**遊標。 – 2015-02-24 01:25:12