適用於:SQL Server
Azure SQL 資料庫
Azure SQL 受控執行個體
針對指定的參數,CURSOR_STATUS
會顯示資料指標宣告是否已傳回資料指標和結果集。
語法
CURSOR_STATUS
(
{ 'local' , 'cursor_name' }
| { 'global' , 'cursor_name' }
| { 'variable' , 'cursor_variable' }
)
引數
'本地'
指定常數,指出數據指標來源是 本機數據指標。
'cursor_name'
資料指標的名稱。 資料指標名稱必須符合資料庫識別碼規則。
'global'
指定常數,指出數據指標的來源是 全域數據指標。
'variable'
指定一個常數來指示資料指標的來源是區域變數。
'cursor_variable'
資料指標變數的名稱。 您必須使用 cursor 資料類型來定義資料指標變數。
傳回類型
小整數
傳回值 | 資料指標名稱 | 資料指標變數 |
---|---|---|
1 |
資料指標結果集至少有一個資料列。 非機密資料指標和索引鍵集資料指標,其結果集至少有一個資料列。 動態資料指標的結果集可以有零、一或多個資料列。 |
配置給這個變數的資料指標是開啟的。 非機密資料指標和索引鍵集資料指標,其結果集至少有一個資料列。 動態資料指標的結果集可以有零、一或多個資料列。 |
0 |
數據指標結果集是空的。 1 | 配置給這個變數的資料指標是開啟的,但結果集確定空白。* |
-1 |
資料指標已關閉。 | 配置給這個變數的資料指標已關閉。 |
-2 |
不適用。 | 可能有下列其中一種情況: 先前呼叫的程式未將游標指派給這個 OUTPUT 變數。先前指派的程式已將數據指標指派給這個 OUTPUT 變數,但程式完成時,數據指標處於關閉狀態。 因此,這個資料指標已取消配置,並未傳回給發出呼叫的程序。未指派任何資料指標給已宣告的資料指標變數。 |
-3 |
具有指定名稱的數據指標不存在。 | 具有指定名稱的數據指標變數不存在,或如果有數據指標存在,則尚未配置任何數據指標。 |
1 動態數據指標永遠不會傳回此結果。
範例
此範例會使用 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
-- and 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