Salta ai contenuti

Cursori

Un cursore permette di scorrere un risultato riga per riga. È come passare il dito lungo un elenco, fermandoti ogni volta su un elemento.

Di solito SQL preferisce lavorare su tante righe insieme. Il cursore è l’eccezione: prende una riga, la guarda, poi passa alla successiva.

I cursori diventano utili in casi particolari, quando davvero hai bisogno di trattare i risultati uno alla volta.

Detto questo, SQL dà il meglio di sé quando ragiona su gruppi di righe insieme. Per questo i cursori esistono, ma non sono lo strumento da preferire per tutto.

Se devi calcolare lo stesso aggiornamento per tutti i prodotti, una normale query UPDATE è spesso la scelta migliore.

Se invece devi chiamare una procedura diversa per ogni riga, con passaggi che dipendono dal risultato precedente, un cursore può avere senso.

Se riesci a risolvere il problema con una query normale, in genere è meglio. Se il problema richiede una sequenza riga per riga, allora il cursore può avere senso.

I cursori possono essere più lenti e più complessi da gestire rispetto alle operazioni insiemistiche tipiche di SQL.

Conoscerli è utile. Usarli come prima scelta quasi mai.