Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
platí pro:SQL Server
Azure SQL Database
Azure SQL Managed Instance
SQL databáze v Microsoft Fabric
U daného parametru se zobrazí, CURSOR_STATUS zda deklarace kurzoru vrátila kurzor a sadu výsledků.
Syntaxe
CURSOR_STATUS
(
{ 'local' , 'cursor_name' }
| { 'global' , 'cursor_name' }
| { 'variable' , 'cursor_variable' }
)
Argumenty
"local"
Určuje konstantu označující, že zdrojem kurzoru je místní kurzor.
"cursor_name"
Název kurzoru. Název kurzoru musí odpovídat pravidlům identifikátoru databáze.
Global
Určuje konstantu označující, že zdrojem kurzoru je globální kurzor.
Proměnná
Určuje konstantu označující, že zdrojem kurzoru je místní proměnná.
"cursor_variable"
Název proměnné kurzoru. Proměnná kurzoru musí být definována pomocí datového typu kurzoru .
Návratové typy
smallint
| Návratová hodnota | Název kurzoru | Proměnná kurzoru |
|---|---|---|
1 |
Sada výsledků kurzoru má aspoň jeden řádek. Pro necitlivé kurzory a kurzory sady klíčů má sada výsledků alespoň jeden řádek. U dynamických kurzorů může sada výsledků obsahovat nula, jeden nebo více řádků. |
Kurzor přidělený této proměnné je otevřený. Pro necitlivé kurzory a kurzory sady klíčů má sada výsledků alespoň jeden řádek. U dynamických kurzorů může sada výsledků obsahovat nula, jeden nebo více řádků. |
0 |
Sada výsledků kurzoru je prázdná. 1 | Kurzor přidělený této proměnné je otevřený, ale sada výsledků je rozhodně prázdná.* |
-1 |
Kurzor je zavřený. | Kurzor přidělený této proměnné je zavřený. |
-2 |
Nelze použít. | Má jednu z těchto možností: Dříve označovaný postup nepřiřadil kurzor k této OUTPUT proměnné.Dříve přiřazený postup přiřadil kurzor této OUTPUT proměnné, ale kurzor byl v uzavřeném stavu po dokončení procedury. Proto je kurzor uvolněn a nevrací se volající procedurě.K deklarované proměnné kurzoru není přiřazen žádný kurzor. |
-3 |
Kurzor se zadaným názvem neexistuje. | Proměnná kurzoru se zadaným názvem neexistuje nebo pokud existuje, není k ní ještě přidělen žádný kurzor. |
1 Dynamické kurzory nikdy nevracely tento výsledek.
Příklady
Tento příklad používá CURSOR_STATUS funkci k zobrazení stavu kurzoru po jeho deklaraci, po otevření a po zavření.
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;
Tady je soubor výsledků.
After declare
---------------
-1
After Open
----------
1
After Close
-----------
-1