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
Hlásí atributy serverových kurzorů, které jsou momentálně otevřené pro připojení.
Syntax
sys.sp_cursor_list
[ @cursor_return = ] cursor_return OUTPUT
, [ @cursor_scope = ] cursor_scope
[ ; ]
Arguments
[ @cursor_return = ] cursor_return VÝSTUP
Název deklarované kurzorové proměnné.
@cursor_return je OUTPUT parametr typu CURSOR. Kurzor je posuvný, dynamický, pouze čtetelný kurzor.
[ @cursor_scope = ] cursor_scope
Specifikuje úroveň kurzorů, které je třeba hlásit. @cursor_scope je int, bez výchozího nastavení, a může být jednou z těchto hodnot.
| Value | Description |
|---|---|
1 |
Nahlaste všechny místní kurzory. |
2 |
Nahlaste všechny globální kurzory. |
3 |
Nahlaste jak lokální, tak globální kurzory. |
Hodnoty návratového kódu
Žádné.
Kurzory se vrátily
sp_cursor_list vrací svou zprávu jako výstupní parametr Transact-SQL kurzoru, nikoli jako sadu výsledků. To umožňuje Transact-SQL dávkám, uloženým procedurám a triggerům pracovat s výstupem po řádcích po řadách. To také znamená, že proceduru nelze volat přímo z funkcí databázového API. Výstupní parametr kurzoru musí být vázán na programovou proměnnou, ale databázová API nepodporují vazby parametrů kurzoru nebo proměnných.
Toto je formát kurzoru vráceného .sp_cursor_list Formát kurzoru je stejný jako formát vrácený .sp_describe_cursor
| Název sloupce | Datový typ | Description |
|---|---|---|
reference_name |
sysname | Název dříve označoval kurzor. Pokud odkaz na kurzor byl přes jméno uvedené ve DECLARE CURSOR výroku, referenční název je stejný jako název kurzoru. Pokud odkaz na kurzor probíhal přes proměnnou, název odkazu je názvem proměnné kurzoru. |
cursor_name |
sysname | Název kurzoru z DECLARE CURSOR výroku. V SQL Server, pokud byl kurzor vytvořen nastavením proměnné kurzoru na kurzorcursor_name, vrátí název proměnné kurzoru. V předchozích verzích tento výstupní sloupec vracel systém generovaný název. |
cursor_scope |
smallint | 1 = LOCAL2 = GLOBAL |
status |
smallint | Stejné hodnoty, jaké uvádí systémová CURSOR_STATUS funkce:1 = Kurzor odkazovaný názvem kurzoru nebo proměnnou je otevřený. Pokud je kurzor necitlivý, statický nebo nastavený na klávesy, je to alespoň jeden řádek. Pokud je kurzor dynamický, výsledná množina má nula nebo více řádků.0 = Kurzor, na který odkazuje jméno kurzoru nebo proměnná, je otevřený, ale nemá žádné řádky. Dynamické kurzory tuto hodnotu nikdy nevrátí.-1 = Kurzor odkazovaný jménem nebo proměnnou kurzoru je uzavřený.-2 = Platí pouze pro proměnné kurzora. K proměnné není přiřazen žádný kurzor. Možná parametr OUTPUT přiřadil kurzor proměnné, ale uložený postup kurzor uzavřel před návratem.-3 = Kurzor nebo proměnná s tímto jménem neexistuje, nebo proměnná kurzoru nemá přiřazený kurzor. |
model |
smallint |
1 = Necitlivé (nebo statické)2 = Klíčová sada3 = Dynamické4 = Přetočte se dopředu |
concurrency |
smallint |
1 = Pouze pro čtení2 = Zámky svitků3 = Optimistický |
scrollable |
smallint |
0 = Pouze útok1 = Posouvatelné |
open_status |
smallint |
0 = Uzavřeno1 = Open |
cursor_rows |
int | Počet kvalifikovaných řádků ve výsledné sadě. Pro více informací viz @@CURSOR_ROWS. |
fetch_status |
smallint | Stav posledního načtení na tomto kurzoru. Pro více informací viz @@FETCH_STATUS:0 = Aportování úspěšné.-1 = Načtení selhalo nebo je mimo hranice kurzoru.-2 = Požadovaný řádek chybí.-9 = Na kurzoru není žádné aportování. |
column_count |
smallint | Počet sloupců v sadě výsledků kurzoru. |
row_count |
smallint | Počet řádků ovlivněných poslední operací na kurzoru. Pro více informací viz @@ROWCOUNT. |
last_operation |
smallint | Poslední operace provedená na kurzoru:0 = Na kurzoru nebyly provedeny žádné operace.1 = OPEN2 = FETCH3 = INSERT4 = UPDATE5 = DELETE6 = CLOSE7 = DEALLOCATE |
cursor_handle |
int | Unikátní hodnota, která identifikuje kurzor v rámci serveru. |
Poznámky
sp_cursor_list vytvoří seznam aktuálních serverových kurzorů otevřených spojením a popisuje atributy globální pro každý kurzor, jako je posouvatelnost a aktualizabilnost kurzoru. Kurzory uvedené podle sp_cursor_list zahrnují:
Transact-SQL kurzory serveru.
API serverové kurzory otevírá ODBC aplikace, která je následně vyvolána
SQLSetCursorNamepro pojmenování kurzoru.
Použijte sp_describe_cursor_columns pro popis atributů výsledné množiny vrácených kurzorem. Použijte sp_describe_cursor_tables pro reporty základních tabulek odkazovaných kurzorem.
sp_describe_cursor hlásí stejné informace jako sp_cursor_list, ale pouze pro specifikovaný kurzor.
Permissions
Povolení pro spuštění se automaticky nastaví na veřejnou roli.
Examples
Následující příklad otevírá globální kurzor a slouží sp_cursor_list k hlášení atributů kurzoru.
USE AdventureWorks2022;
GO
-- Declare and open a keyset-driven cursor.
DECLARE abc CURSOR KEYSET
FOR SELECT LastName
FROM Person.Person
WHERE LastName LIKE 'S%';
OPEN abc;
-- Declare a cursor variable to hold the cursor output variable
-- from sp_cursor_list.
DECLARE @Report AS CURSOR;
-- Execute sp_cursor_list into the cursor variable.
EXECUTE master.dbo.sp_cursor_list
@cursor_return = @Report OUTPUT,
@cursor_scope = 2;
-- Fetch all the rows from the sp_cursor_list output cursor.
FETCH NEXT FROM @Report;
WHILE (@@FETCH_STATUS <> -1)
BEGIN
FETCH NEXT FROM @Report;
END
-- Close and deallocate the cursor from sp_cursor_list.
CLOSE @Report;
DEALLOCATE @Report;
GO
-- Close and deallocate the original cursor.
CLOSE abc;
DEALLOCATE abc;
GO
Související obsah
- uložené procedury systému (Transact-SQL)