CURSOR_STATUS (Transact-SQL)

適用於:SQL ServerAzure SQL DatabaseAzure SQL 受控執行個體

針對指定的參數,CURSOR_STATUS 會顯示資料指標宣告是否已傳回資料指標和結果集。

Transact-SQL 語法慣例

Syntax

CURSOR_STATUS   
     (  
          { 'local' , 'cursor_name' }   
          | { 'global' , 'cursor_name' }   
          | { 'variable' , 'cursor_variable' }   
     )  

注意

若要檢視 SQL Server 2014 (12.x) 和舊版的 Transact-SQL 語法,請參閱 舊版檔

引數

'local'
指定一個常數來指示資料指標來源是本機資料指標名稱。

'cursor_name'
資料指標的名稱。 資料指標名稱必須符合資料庫識別碼規則

'global'
指定一個常數來指示資料指標的來源是全域資料指標名稱。

'variable'
指定一個常數來指示資料指標的來源是區域變數。

'cursor_variable'
資料指標變數的名稱。 您必須使用 cursor 資料類型來定義資料指標變數。

傳回類型

smallint

傳回值 資料指標名稱 資料指標變數
1 資料指標結果集至少有一個資料列。

非機密資料指標和索引鍵集資料指標,其結果集至少有一個資料列。

動態資料指標的結果集可以有零、一或多個資料列。
配置給這個變數的資料指標是開啟的。

非機密資料指標和索引鍵集資料指標,其結果集至少有一個資料列。

動態資料指標的結果集可以有零、一或多個資料列。
0 資料指標結果集是空的。* 配置給這個變數的資料指標是開啟的,但結果集確定空白。*
-1 資料指標已關閉。 配置給這個變數的資料指標已關閉。
-2 不適用。 可能有下列其中一種情況:

先前呼叫的程序未指派任何資料指標給這個 OUTPUT 變數。

先前指派的程序指派一個資料指標給這個 OUTPUT 變數,但程序完成時,這個資料指標在關閉狀態中。 因此,這個資料指標已取消配置,並未傳回給發出呼叫的程序。

未指派任何資料指標給已宣告的資料指標變數。
-3 含指定名稱的資料指標不存在。 含指定名稱的資料指標變數不存在,或這個變數存在,但還沒有配置資料指標。

*動態資料指標永遠不會傳回這個結果。

範例

此範例會使用 CURSOR_STATUS 函式來顯示資料指標在宣告後、開啟後及關閉後的狀態。

CREATE TABLE #TMP  
(  
   ii INT  
)  
GO  
  
INSERT INTO #TMP(ii) VALUES(1)  
INSERT INTO #TMP(ii) VALUES(2)  
INSERT INTO #TMP(ii) VALUES(3)  
  
GO  
  
--Create a cursor.  
DECLARE cur CURSOR  
FOR SELECT * FROM #TMP  
  
--Display the status of the cursor before and after opening  
--closing the cursor.  
  
SELECT CURSOR_STATUS('global','cur') AS 'After declare'  
OPEN cur  
SELECT CURSOR_STATUS('global','cur') AS 'After Open'  
CLOSE cur  
SELECT CURSOR_STATUS('global','cur') AS 'After Close'  
  
--Remove the cursor.  
DEALLOCATE cur  
  
--Drop the table.  
DROP TABLE #TMP  
  

以下為結果集。

After declare
---------------
-1  
  
After Open
----------
1  
  
After Close
-----------
-1

另請參閱

資料指標函數 (Transact-SQL)
資料類型 (Transact-SQL)