OPEN (Transact-SQL)
Si applica a:SQL Server database SQL di Azure Istanza gestita di SQL di Azure
Apre un cursore server Transact-SQL e popola il cursore mediante l'istruzione Transact-SQL specificata nell'istruzione DECLARE CURSOR o SET cursor_variable.
Convenzioni di sintassi Transact-SQL
Sintassi
OPEN { { [ GLOBAL ] cursor_name } | cursor_variable_name }
Nota
Per visualizzare la sintassi Transact-SQL per SQL Server 2014 (12.x) e versioni precedenti, vedere la documentazione delle versioni precedenti.
Argomenti
GLOBAL
Specifica che cursor_name fa riferimento a un cursore globale.
cursor_name
Nome del cursore dichiarato. Se esistono sia un cursore globale che un cursore locale con il nome cursor_name, cursor_name fa riferimento al cursore globale se viene specificato l'argomento GLOBAL. In caso contrario, cursor_name fa riferimento al cursore locale.
cursor_variable_name
Nome di una variabile di cursore che fa riferimento a un cursore.
Osservazioni:
Se il cursore viene dichiarato con l'opzione INSENSITIVE o STATIC, OPEN crea una tabella temporanea per il set di risultati. OPEN ha esito negativo se le dimensioni di una riga del set dei risultati supera le dimensioni massime consentite per le righe delle tabelle di SQL Server. Se il cursore viene dichiarato con l'opzione KEYSET, OPEN crea una tabella temporanea per il keyset. Le tabelle temporanee vengono archiviate in tempdb.
Dopo l'apertura di un cursore, usare la funzione @@CURSOR_ROWS per ricevere il numero di righe qualificate nell'ultimo cursore aperto.
Nota
SQL Server non supporta la generazione di cursori Transact-SQL statici o basati su keyset in modo asincrono. Le operazioni di cursore Transact-SQL, ad esempio OPEN o FETCH, vengono raggruppate in batch, pertanto non è necessaria la generazione asincrona di cursori Transact-SQL. SQL Server continua a supportare cursori server API (KeySet-Driven o Static Application Programming Interface) asincroni in cui open a bassa latenza è un problema, a causa di round trip client per ogni operazione di cursore.
Esempi
Nell'esempio seguente viene aperto un cursore e vengono recuperate tutte le righe.
DECLARE Employee_Cursor CURSOR FOR
SELECT LastName, FirstName
FROM AdventureWorks2022.HumanResources.vEmployee
WHERE LastName like 'B%';
OPEN Employee_Cursor;
FETCH NEXT FROM Employee_Cursor;
WHILE @@FETCH_STATUS = 0
BEGIN
FETCH NEXT FROM Employee_Cursor
END;
CLOSE Employee_Cursor;
DEALLOCATE Employee_Cursor;
Vedi anche
CLO edizione Standard (Transact-SQL)
@@CURSOR_ROWS (Transact-SQL)
DEALLOCATE (Transact-SQL)
DECLARE CURSOR (Transact-SQL)
FETCH (Transact-SQL)
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