Condividi tramite


Utilizzo della conversione implicita del cursore

Nelle applicazioni è possibile che sia richiesto un tipo di cursore specifico e venga quindi eseguita un'istruzione Transact-SQL non supportata dai cursori del server richiesti. In questi casi viene visualizzato un errore di Microsoft SQL Server per indicare che il tipo di cursore è stato modificato. Questa conversione, nota come conversione del cursore, viene talvolta definita degradazione del cursore.

Nella tabella seguente vengono descritti i fattori che in SQL Server attivano la conversione implicita del tipo di cursore.

Passaggio

Fattore che attiva la conversione

Forward-only

Gestito da keyset

Dinamico

Passaggio successivo

1

La clausola FROM della query non fa riferimento ad alcuna tabella.

Diventa statico.

Diventa statico.

Diventa statico.

Chiudi

2

La query include le aggregazioni dell'elenco di selezione GROUP BY UNION DISTINCT HAVING

Diventa statico.

Diventa statico.

Diventa statico.

Chiudi

3

La query genera una tabella di lavoro interna, ad esempio le colonne di ORDER BY non sono coperte da un indice.

Diventa keyset.

 

Diventa keyset.

5

4

La query fa riferimento alle tabelle remote dei server collegati.

Diventa keyset.

 

Diventa keyset.

5

5

La query fa riferimento ad almeno una tabella priva di indice univoco. Solo per cursori Transact-SQL.

 

Diventa statico.

 

Chiudi

Nota

I cursori fast forward non vengono mai convertiti.

Nota

I keyset e i cursori dinamici vengono convertiti solo se una qualsiasi delle tabelle di base sottostanti non dispone di un indice univoco oppure se la query non restituisce direttamente le colonne chiave delle tabelle di base, ad esempio se la query contiene funzioni di aggregazione oppure operatori sugli insiemi.