Condividi tramite


Cursori statici (Motore di database)

Il set di risultati completo di un cursore statico viene creato nel database tempdb all'apertura del cursore. Un cursore statico visualizza sempre il set di risultati così come è visualizzato all'apertura del cursore.

Nel cursore non vengono riportate né le modifiche al database che hanno effetto sull'appartenenza del set di risultati, né le modifiche apportate ai valori inclusi nelle colonne delle righe del set di risultati. Un cursore statico non visualizza le nuove righe inserite nel database dopo l'apertura del cursore, anche se tali righe soddisfano le condizioni di ricerca dell'istruzione SELECT del cursore. Non visualizza inoltre gli aggiornamenti eseguiti da altri utenti nelle righe del set di risultati. Un cursore statico riflette invece le operazioni di eliminazione di righe dal database dopo l'apertura del cursore. Il risultato delle operazioni UPDATE, INSERT e DELETE non viene mai riportato nel cursore statico, né le modifiche eseguite sulla stessa connessione in cui è stato aperto il cursore (a meno che il cursore non venga chiuso e riaperto).

I cursori statici di SQL Server sono sempre di sola lettura.

Poiché il set di risultati di un cursore statico viene archiviato in una tabella di lavoro in tempdb, la lunghezza delle righe non può essere maggiore della lunghezza di riga massima consentita per le tabelle di SQL Server.

In Transact-SQL i cursori statici sono definiti cursori di tipo insensitive. Alcune API di database li identificano come cursori snapshot.