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 |
Remarque : |
---|
Les curseurs à avance rapide ne sont jamais convertis. |
Remarque : |
---|
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)