SQL Server 2005 聯機叢書(2007 年 9 月)@@FETCH_STATUS (Transact-SQL)
返回針對串連當前開啟的任何遊標發出的上一條遊標 FETCH 語句的狀態。
Transact-SQL 文法約定
文法
@@FETCH_STATUS
傳回型別
integer
傳回值
| 傳回值 |
說明 |
|
0 |
FETCH 語句成功。 |
|
-1 |
FETCH 語句失敗或行不在結果集中。 |
|
-2 |
提取的行不存在。 |
備忘
由於 @@FETCH_STATUS 對於在一個串連上的所有遊標都是全域性的,所以要謹慎使用 @@FETCH_STATUS。在執行一條 FETCH 語句後,必須在對另一遊標執行另一 FETCH 語句前測試 @@FETCH_STATUS。在此串連上出現任何提取操作之前,@@FETCH_STATUS 的值沒有定義。
例如,使用者從一個遊標執行一條 FETCH 語句,然後調用一個預存程序,此預存程序開啟並處理另一個遊標的結果。從被調用的預存程序返回控制後,@@FETCH_STATUS 反映的是在預存程序中執行的最後的 FETCH 語句的結果,而不是在預存程序被調用之前的 FETCH 語句的結果。
若要檢索特定遊標的最後提取狀態,請查詢 sys.dm_exec_cursors 動態管理函數的 fetch_status 列。
樣本
以下樣本用 @@FETCH_STATUS 控制一個 WHILE 迴圈中的遊標活動。
複製代碼
DECLARE Employee_Cursor CURSOR FOR SELECT EmployeeID, Title FROM AdventureWorks.HumanResources.Employee;
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;
GO
請參閱
參考
遊標函數 (Transact-SQL)
FETCH (Transact-SQL)
協助和資訊
擷取 SQL Server 2005 協助