sp_cursor_list (Transact-SQL)
Si applica a:SQL Server
Restituisce gli attributi dei cursori del server aperti per la connessione corrente.
Convenzioni di sintassi Transact-SQL
Sintassi
sp_cursor_list [ @cursor_return = ] cursor_variable_name OUTPUT
, [ @cursor_scope = ] cursor_scope
[;]
Argomenti
[ @cursor_return= ] cursor_variable_nameOUTPUT
Nome di una variabile di cursore dichiarata. cursor_variable_name è cursore, senza impostazione predefinita. Il cursore restituito è di tipo scorrevole, dinamico e di sola lettura.
[ @cursor_scope= ] cursor_scope
Specifica il livello dei cursori da segnalare. cursor_scope è int, senza impostazione predefinita e può essere uno di questi valori.
Valore | Description |
---|---|
1 | Restituisce tutti i cursori locali. |
2 | Restituisce tutti i cursori globali. |
3 | Restituisce i cursori locali e quelli globali. |
Valori del codice restituito
Nessuno
Cursori restituiti
sp_cursor_list restituisce il report come parametro di output del cursore Transact-SQL, non come set di risultati. In questo modo è possibile usare batch Transact-SQL, stored procedure e trigger con l'output di una riga alla volta. Non è possibile richiamare direttamente la procedura da funzioni API del database. Il parametro di output del cursore deve essere associato a una variabile di programma, ma le API del database non supportano l'associazione di parametri o variabili del cursore.
Di seguito è riportato il formato del cursore restituito da sp_cursor_list. Il formato del cursore è analogo a quello restituito da sp_describe_cursor.
Nome colonna | Tipo di dati | Descrizione |
---|---|---|
reference_name | sysname | Nome utilizzato per fare riferimento al cursore. Se il riferimento al cursore è stato impostato tramite il nome specificato in un'istruzione DECLARE CURSOR, il nome di riferimento corrisponde al nome del cursore. Se il riferimento al cursore è stato impostato tramite una variabile, il riferimento corrisponde al nome della variabile di cursore. |
cursor_name | sysname | Nome del cursore che deriva da un'istruzione DECLARE CURSOR. In SQL Server, se il cursore è stato creato impostando una variabile di cursore su un cursore, cursor_name restituisce il nome della variabile di cursore. Nelle versioni precedenti questa colonna di output restituisce un nome generato dal sistema. |
cursor_scope | smallint | 1 = LOCAL 2 = GLOBAL |
stato | smallint | Valori restituiti dalla funzione di sistema CURSOR_STATUS: 1 = Il cursore a cui si fa riferimento tramite il nome o la variabile è aperto. Se il cursore è di tipo insensitive, statico o keyset, il set di risultati contiene almeno una riga. Se invece è dinamico, contiene zero o più righe. 0 = Il cursore a cui si fa riferimento tramite il nome o la variabile è aperto, ma non contiene righe. I cursori dinamici non restituiscono mai questo valore. -1 = Il cursore a cui si fa riferimento tramite il nome o la variabile è chiuso. -2 = Si applica solo alle variabili di cursore. Alla variabile non è assegnato alcun cursore. È possibile che un parametro OUTPUT abbia assegnato un cursore alla variabile, ma la stored procedure ha chiuso il cursore prima di completare l'operazione. -3 = Non esiste alcun cursore o variabile di cursore con il nome specificato oppure alla variabile non è stato assegnato alcun cursore. |
modello | smallint | 1 = Insensitive (o statico) 2 = Keyset 3 = Dinamico 4 = Fast forward-only |
concurrency | smallint | 1 = Di sola lettura. 2 = Blocchi di scorrimento. 3 = Ottimistica. |
scrollable | smallint | 0 = Forward-only 1 = Scorrevole |
open_status | smallint | 0 = Chiuso 1 = Aperto |
cursor_rows | int | Numero di righe del set di risultati. Per altre informazioni, vedere @@CURSOR_ROWS. |
fetch_status | smallint | Stato dell'ultimo recupero del cursore. Per altre informazioni, vedere @@FETCH_STATUS: 0 = Recupero corretto. -1 = Recupero non riuscito o non compreso entro i limiti del cursore. -2 = La riga richiesta è mancante. -9 = Nessun recupero eseguito sul cursore. |
column_count | smallint | Numero di colonne nel set di risultati del cursore. |
row_count | smallint | Numero di righe modificate dopo l'ultima operazione eseguita sul cursore. Per altre informazioni, vedere @@ROWCOUNT. |
last_operation | smallint | Ultima operazione eseguita sul cursore: 0 = Non è stata eseguita alcuna operazione. 1 = OPEN 2 = FETCH 3 = INSERT 4 = UPDATE 5 = DELETE 6 = CLOSE 7 = DEALLOCATE |
cursor_handle | int | Valore univoco che identifica il cursore nell'ambito del server. |
Osservazioni:
La stored procedure sp_cursor_list consente di creare un elenco dei cursori del server aperti nella connessione e di ottenere una descrizione degli attributi globali di ogni cursore, ad esempio se è scorrevole e aggiornabile. I cursori elencati tramite sp_cursor_list sono i seguenti:
Cursori transact-SQL server.
Cursori del server API aperti da un'applicazione ODBC che viene quindi chiamata SQLSetCursorName per denominare il cursore.
Utilizzare sp_describe_cursor_columns per ottenere una descrizione degli attributi del set dei risultati restituito dal cursore. Utilizzare sp_describe_cursor_tables per ottenere un report delle tabelle di base a cui fa riferimento il cursore. sp_describe_cursor segnala le stesse informazioni di sp_cursor_list, ma solo per un cursore specificato.
Autorizzazioni
Le autorizzazioni di esecuzione vengono assegnate per impostazione predefinita al ruolo public.
Esempi
Nell'esempio seguente viene aperto un cursore globale e viene utilizzata la stored procedure sp_cursor_list
per creare un report degli attributi del cursore.
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 CURSOR;
-- Execute sp_cursor_list into the cursor variable.
EXEC 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
Vedi anche
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per