@@FETCH_STATUS 遊標

來源:互聯網
上載者:User
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 協助

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.