Condividi tramite


Tipi di cursore

Si applica a: SQL Server database SQL di Azure Istanza gestita di SQL di Azure azure Synapse Analytics Analytics Platform System (PDW)

ODBC definisce quattro tipi di cursore supportati da Microsoft SQL Server e dal driver ODBC di SQL Server Native Client. Questi cursori variano in base alla capacità di rilevare le modifiche apportate al set di risultati e alle risorse utilizzate, ad esempio memoria e spazio in 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 non effettuate di un cursore inoltre varia in base al livello di isolamento delle transazioni.

Questi sono i quattro tipi di cursore ODBC supportati da SQL Server:

  • I cursori forward only non supportano lo scorrimento, ma solo le operazioni di recupero seriale delle righe dall'inizio alla fine del cursore.

  • I cursori statici vengono compilati in tempdb quando il cursore viene aperto. Un cursore statico visualizza sempre il set di risultati così come è visualizzato all'apertura del cursore. Non riflettono mai modifiche ai dati. I cursori statici SQL Server sono sempre di sola lettura. Poiché un cursore server statico viene compilato come tabella di lavoro in tempdb, le dimensioni del set di risultati del cursore non possono superare le dimensioni massime consentite da SQL Server.

  • L'appartenenza e l'ordine delle righe di un cursore gestito da keyset vengono fissati al momento dell'apertura del cursore. Eventuali modifiche alle colonne non chiave sono visibili tramite il cursore.

  • I cursori dinamici sono l'opposto dei cursori statici. Essi riflettono tutte le modifiche apportate alle righe del set di risultati corrispondente. I valori di dati, l'ordine e l'appartenenza delle righe del set di risultati possono variare a ogni operazione di recupero.

Vedi anche

Uso dei cursori (ODBC)