Come scrivere cursori in SQL

June 22

Normalmente, SQL (Structured Query Language) le richieste di lavoro con intere serie di dati. Tuttavia, ci sono momenti in cui può essere meglio o persino necessarie per lavorare con i dati di una riga alla volta. Per queste circostanze, i cursori sono la scelta migliore. Essi permettono un'operazione da eseguire su ciascuna riga di un set di dati, uno alla volta. Ad esempio, i cursori sono il modo più semplice per muoversi attraverso tutta una serie di dati e di applicare una procedura per ogni riga del set. Tuttavia, questo ha un costo: i cursori sono generalmente molto più lento di altre operazioni SQL.

istruzione

1 Digitare il seguente comando nella console di SQL Server per dichiarare il cursore:

DICHIARARE CURSORE cursor1

2 Fornire un'istruzione SELECT che recupera i dati il ​​cursore si lavoro su:

PER

SELECT cognome

da parte dei dipendenti

PER AGGIORNAMENTO DI cognome

In questo modo recuperare un elenco di last_names da una tabella dipendente. Si specifica inoltre che vi sarà l'aggiornamento del cognome come si procede attraverso i dati del cursore.

3 Aprire il cursore digitando la seguente:

cursor1 APERTO

4 Iniziare scorrendo le righe digitando quanto segue:

FETCH AVANTI DA cursor1

IN @LASTNAME

MENTRE @@ FETCH_STATUS = 0

INIZIO

5 Aggiornare il cognome digitando la seguente:

EXEC SUPERIORE (@LASTNAME)

Questo imposterà il cognome della riga corrente ed è quindi in tutte le lettere maiuscole.

6 Fetch un'altra riga prima di terminare il ciclo WHILE iniziata al punto 4:

FETCH AVANTI DA cursor1

IN @LASTNAME

FINE

7 Chiudere il cursore e rilasciare il suo nome in modo che possa essere usato di nuovo, se necessario:

cursor1 CHIUDI

cursor1 DEALLOCATE

Consigli e avvertenze

  • Questo tutorial utilizza Microsoft SQL Server. La sintassi può cambiare leggermente per altre implementazioni di SQL, come ad esempio MySQL.
  • I cursori sono molto lenti rispetto ad altre operazioni in SQL, per cui dovrebbero essere utilizzati solo se necessario.