Utilisation des conversions implicites de curseurs

Les applications peuvent demander un type de curseur donné et exécuter ensuite une instruction Transact-SQL qui n'est pas prise en charge par les curseurs de serveur du type demandé. Microsoft SQL Server 2005 retourne une erreur qui indique que le type de curseur a changé. Cette conversion est appelée conversion implicite de curseur ou plus rarement dégradation de curseur.

Le tableau ci-dessous répertorie les facteurs déclenchant dans SQL Server la conversion implicite d'un type de curseur en un autre.

Étape Facteur de déclenchement d'une conversion Curseur avant uniquement Curseur piloté par jeu de clés Curseur dynamique Passez à l'étape

1

La clause FROM de la requête ne fait référence à aucune table.

Devient statique.

Devient statique.

Devient statique.

Terminer

2

La requête contient : agrégats de liste de sélection GROUP BY UNION DISTINCT HAVING

Devient statique.

Devient statique.

Devient statique.

Terminer

3

La requête génère une table de travail interne, par exemple les colonnes d'une clause ORDER BY ne comportent pas d'index.

Devient un jeu de clés.

 

Devient un jeu de clés.

5

4

La requête fait référence à des tables distantes situées sur des serveurs liés.

Devient un jeu de clés.

 

Devient un jeu de clés.

5

5

La requête fait référence à au moins une table sans index unique. Curseurs Transact-SQL uniquement.

 

Devient statique.

 

Terminer

ms190641.note(fr-fr,SQL.90).gifRemarque :
Les curseurs à avance rapide ne sont jamais convertis.
ms190641.note(fr-fr,SQL.90).gifRemarque :
Les curseurs à jeu de clés et dynamiques sont convertis uniquement si une des tables de base sous-jacentes ne possède pas d'index unique ou si la requête ne retourne pas directement les colonnes clés des tables de base, par exemple si la requête contient les fonctions d'agrégats ou des opérateurs set.

Voir aussi

Autres ressources

Implicit Cursor Conversions (ODBC)

Aide et Informations

Assistance sur SQL Server 2005