Esempio di cursore SQL Server

Esempio di cursore SQL Server
I cursori sono un concetto fondamentale nei database. Ti permettono di iterare per il risultato di una domanda. Ciò può essere utile quando è necessario agire su base per riga per riga, portando a operazioni semplificate e sequenziali nel database.

Questo articolo ti guida attraverso i fondamenti del lavoro con i cursori in SQL Server.

Cos'è un cursore?

Cominciamo dalle basi e discutiamo di cosa sia un cursore di database. Un cursore è un oggetto che consente di attraversare le file di una query risultante. In termini semplici, un cursore consente di elaborare le righe di un set risultante individualmente.

Il ciclo di vita del cursore SQL Server

Un cursore SQL Server subisce vari passaggi. Quanto segue descrive il ciclo di vita di un cursore in SQL Server.

Inizi dichiarando un cursore usando un'istruzione SQL. La seguente sintassi mostra la definizione del cursore di esempio

Dichiarare cursore cursore_name
Per select_query;

Il secondo passo è aprire il cursore, consentendo di archiviare i dati dal set di risultati. Apri il cursore come:

Cursor_name aperto;

Nella fase di recupero, è possibile recuperare le righe dal cursore uno per uno o in un set. Esempio di sintassi di recupero è come:

Fetch Avanti dal cursore in list_of_variables;

Una volta che hai finito di recuperare i dati, chiudi il cursore.

chiudere cursore_name;

Infine, affare il cursore, che elimina la definizione del cursore e rilascia le risorse di sistema ad essa associate.

deallocalizza cursore_name;

Esempio di utilizzo del cursore

Facciamo un esempio per illustrare come utilizzare un cursore SQL Server. Nel nostro esempio, useremo il campione SalesDB per SQL Server. Scarica e sperimentalo da solo.

Inizieremo dichiarando le variabili che tengono il nome e il prezzo del prodotto e il cursore per elaborare il risultato della query.

Uno snippet di codice di esempio è come previsto di seguito:

DICHIARARE
@product_name varchar (255),
@price decimal (10,2);
DICHIARARE
Cursore Sample_Cursor
Per selezionare
@nome del prodotto,
@prezzo
DA
Prodotti;

Una volta completato il cursore e la dichiarazione variabile, possiamo aprire e utilizzare il cursore per recuperare i dati.

Un esempio è come mostrato:

Usa SalesDB;
DICHIARARE
@Name varchar (255),
@Price decimal (10,2);
DICHIARARE
Cursore Sample_Cursor
Per selezionare
@Nome,
@Prezzo
DA
Prodotti;
Open Sample_Cursor;
Fetch Avanti da Sample_cursor in
@Nome,
@Prezzo;
while @@ fetch_status = 0
INIZIO
stampa @name + cast (@price come varchar (max));
Fetch Avanti da Sample_cursor in
@Nome,
@Prezzo;
FINE;
chiudere campione_cursor;
Deallocay Sample_cursor;

Dopo aver recuperato i dati richiesti, chiudiamo e trattiamo il cursore per rilasciare risorse di sistema.

Chiusura.

Questa guida ti ha insegnato le basi del lavoro con i cursori SQL Server. Sebbene utilizzerai raramente i cursori per elaborare i dati su base rigida, i cursori possono essere molto utili se usati correttamente.