Condividi tramite


Tipi di cursore (Motore di database)

ODBC e ADO definiscono quattro tipi di cursore supportati da Microsoft SQL Server. L'istruzione DECLARE CURSOR è stata migliorata in modo da consentire la dichiarazione dei quattro tipi di cursore per i cursori Transact-SQL. I cursori si differenziano in relazione alla capacità di rilevare le modifiche apportate ai set di risultati e al numero di risorse necessarie, ad esempio la memoria e lo spazio del database tempdb. Tramite un cursore è possibile rilevare le modifiche apportate alle righe solo quando viene eseguito un secondo tentativo di recupero di tali righe. L'origine dei dati non è in grado di notificare al cursore le eventuali modifiche apportate alle righe in fase di recupero. La capacità di rilevamento delle modifiche di un cursore varia inoltre in base al livello di isolamento della transazione.

I quattro tipi di cursori API del server supportati da SQL Server sono:

  • Cursori statici

  • Cursori dinamici

  • Cursori forward-only

  • Cursori gestiti da keyset

I cursori statici rilevano poche modifiche o addirittura nessuna, ma utilizzano un numero relativamente ridotto di risorse per lo scorrimento. I cursori dinamici rilevano tutte le modifiche, ma utilizzano un numero di risorse maggiore per lo scorrimento. I cursori gestiti da keyset rilevano la maggior parte delle modifiche utilizzando tuttavia un numero di risorse minore rispetto ai cursori dinamici.

A differenza dei modelli di cursore dell'API di database, in SQL Server i cursori forward-only non vengono interpretati come un tipo di cursore distinto. In SQL Server, gli attributi forward-only e di scorrimento sono considerati opzioni che è possibile applicare ai cursori dinamici, statici o gestiti da keyset.