CURSORE SQL Server

Riepilogo: in questo tutorial imparerai come utilizzare il cursore SQL Server per elaborare un set di risultati, una riga alla volta.

SQL funziona in base a un set, ad esempio, listruzione SELECT restituisce un insieme di righe chiamato set di risultati. Tuttavia, a volte, potresti voler elaborare un set di dati riga per riga. È qui che entrano in gioco i cursori.

Che cosè un cursore di database

Un cursore di database è un oggetto che consente lattraversamento delle righe di un set di risultati. Consente di elaborare singole righe restituite da una query.

Ciclo di vita del cursore di SQL Server

Questi sono i passaggi per lutilizzo di un cursore:

Innanzitutto, dichiara un cursore.

Code language: SQL (Structured Query Language) (sql)

Per dichiarare un cursore, specificarne il nome dopo la parola chiave DECLARE con il tipo di dati CURSOR e fornire un SELECT che definisce il set di risultati per il cursore.

Successivamente, apri e popola il cursore eseguendo SELECT istruzione:

Code language: SQL (Structured Query Language) (sql)

Quindi, recupera una riga dal cursore in una o più variabili:

Code language: SQL (Structured Query Language) (sql)

SQL Server fornisce la funzione @@FETCHSTATUS che restituisce lo stato dellultima istruzione FETCH eseguita sul cursore; Se @@FETCHSTATUS restituisce 0, significa che listruzione FETCH ha avuto esito positivo. Puoi utilizzare listruzione WHILE per recuperare tutte le righe dal cursore come mostrato nel codice seguente:

Code language: SQL (Structured Query Language) (sql)

Dopodiché, chiudi il cursore:

Code language: SQL (Structured Query Language) (sql)

Infine, dealloca il cursore:

Code language: SQL (Structured Query Language) (sql)

Esempio di cursore di SQL Server

Useremo la tabella prodution.products dal database di esempio per mostrarti come utilizzare un cursore:

Innanzitutto, dichiara due variabili per contenere il nome del prodotto e il prezzo di listino e un cursore per contenere il risultato di una query che recupera il nome del prodotto e il prezzo di listino dalla tabella production.products:

Successivamente, apri il cursore:

Code language: SQL (Structured Query Language) (sql)

Quindi, recupera ogni riga dal cursore e stampa il nome del prodotto e il prezzo di listino:

Dopodiché chiudi il cursore:

Code language: SQL (Structured Query Language) (sql)

Infine, rilascia il cursore per rilasciarlo.

I seguenti frammenti di codice mettono insieme tutto:

Ecco loutput parziale:

In pratica, utilizzerai raramente il cursore per elaborare un set di risultati riga per riga.

In questo tutorial, hai imparato a utilizzare il cursore di SQL Server per elaborare un set di risultati, ogni riga alla volta.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *