CURSOR_STATUS (Transact-SQL)

可讓預存程序的呼叫者判斷程序是否已傳回給定參數之資料指標和結果集的純量函數。

主題連結圖示Transact-SQL 語法慣例

語法

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

引數

  • '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

以下為結果集:

在宣告之後

---------------

-1

在開啟之後

----------

1

在關閉之後

-----------

-1