返回被 FETCH 語句執(zhí)行的最后游標的狀態(tài),而不是任何當前被連接打開的游標的狀態(tài)。
返回值 | 描述 |
---|---|
0 | FETCH 語句成功。 |
-1 | FETCH 語句失敗或此行不在結(jié)果集中。 |
-2 | 被提取的行不存在。 |
@@FETCH_STATUS
integer
由于 @@FETCH_STATUS 對于在一個連接上的所有游標是全局性的,要小心使用 @@FETCH_STATUS 。在執(zhí)行一條 FETCH 語句后,必須在對另一游標執(zhí)行另一 FETCH 語句前測試 @@FETCH_STATUS 。在任何提取操作出現(xiàn)在此連接上前,@@FETCH_STATUS 的值沒有定義。
例如,用戶從一個游標執(zhí)行一條 FETCH 語句,然后調(diào)用一個存儲過程,此存儲過程打開并處理另一個游標的結(jié)果。當控制從被調(diào)用的存儲過程返回后,@@FETCH_STATUS 反映的是在存儲過程中執(zhí)行的最后的 FETCH 語句的結(jié)果,而不是在存儲過程被調(diào)用之前的 FETCH 語句的結(jié)果。
下面的示例用 @@FETCH_STATUS 控制在一個 WHILE 循環(huán)中的游標活動。
DECLARE Employee_Cursor CURSOR FOR
SELECT LastName, FirstName FROM Northwind.dbo.Employees
OPEN Employee_Cursor
FETCH NEXT FROM Employee_Cursor
WHILE @@FETCH_STATUS = 0
BEGIN
FETCH NEXT FROM Employee_Cursor
END
CLOSE Employee_Cursor
DEALLOCATE Employee_Cursor
相關文章