CURSOR_STATUS (Transact-SQL)
適用於:SQL Server Azure SQL 資料庫 Azure SQL 受控執行個體
針對指定的參數,CURSOR_STATUS
會顯示資料指標宣告是否已傳回資料指標和結果集。
語法
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
結果集如下所示。
After declare
---------------
-1
After Open
----------
1
After Close
-----------
-1