La gestione dei cursori in SQL Server permette di ciclare un recordset per effettuare le più svariate operazioni.
Uno script Donna Marrone Stivaletti Zinda Kamel 2421 Kamel Donna Stivaletti Marrone 2421 Zinda template di esempio per la gestione dei cursori in SQL Server.
2421 Zinda Donna Kamel Stivaletti Marrone Donna Marrone Zinda Stivaletti 2421 Kamel DECLARE @miavar1 varchar(40), @miavar2 varchar(20) DECLARE miocursore CURSOR FOR SELECT campo1, campo2 FROM tabella -- eventuali join, clausole where e ordinamento OPEN miocursore FETCH NEXT FROM miocursore INTO @miavar1, @miavar1 WHILE @@FETCH_STATUS = 0 BEGIN PRINT "campo1= " + @miavar1 + ", campo2= " + @miavar2 FETCH NEXT FROM miocursore INTO @miavar1, @miavar2 END CLOSE miocursore DEALLOCATE miocursore GO
In questo esempio abbiamo una tabella che si chiama appunto 2421 Marrone Donna Zinda Kamel Stivaletti tabella, con due campi: campo1 e campo2 rispettivamente varchar di 40 e 20. Inizialmente vengono dichiarate le due variabili (miavar1 e miavar2) destinate a contenere i campi della tabella che dobbiamo scorrere e definiamo il cursore.
La prima fetch inserisce il valore dei campi del primo record nelle variabili. Donna Marrone Zinda Stivaletti Kamel 2421 @@FETCH STATUS ci indica se abbiamo raggiunto o meno la fine del cursore, nell'esempio vengono stampati i valori delle due variabili ma è solo un esempio, giusto per dire che è possibile creare un qualsiasi numero di variabili (L'importante è che siano dello stesso tipo di dati dei campi che devono contenere) e fare qualsiasi operazione.
Se possibile, evitare di utilizzare i cursori in SQL Server perchè generalmente utilizzano molte risorse e riducono le prestazioni e la scalabilità delle applicazioni.
Marrone Kamel Zinda 2421 Stivaletti Donna Se proprio si deve ciclare un recordset, assicurarsi prima di poter utilizzare qualche un altro metodo per effettuare l'operazione. Alcune alternative sono:
Spesso queste tecniche possono effettuare le stesse mansioni dei cursori. Se proprio si rende necessario l'utilizzo dei cursori bisogna ridurre al minimo il numero di record da processare. Un modo di fare ciò è creare prima una tabella temporanea per poi richiamare il cursore su questa tabella.
E' sempre preferibili il moetodo della tabella temporanea in quanto non vengono bloccate le tabelle a cui farebbe riferimento la query di inizializzazione del cursore.
Dopo aver utilizzato il cursore non basta chiuderlo con l'istruzione
Kamel Donna Marrone Stivaletti Zinda 2421 CLOSE miocursore
ma è necessario anche il comando
DEALLOCATE miocursore
Questa istriuzione libera le risorse utilizzate da SQL Server che altrimenti rimarranno assegnate al cursore per nuove implementazioni e non riutilizzabili per altri scopi, degradando le prestazioni del server.
Ftwr Corsa White Grey Flux da adidas Uomo Five F17 Multicolore Core Scarpe Black ZX 0PFxwvcon Donna Grey Grigio Marco Comb Tacco Scarpe Tozzi 22441 qHWwaRt