Types de curseurs (moteur de base de données)

ODBC et ADO définissent quatre types de curseurs pris en charge par Microsoft SQL Server. L'instruction DECLARE CURSEUR a été élargie afin de vous permettre de spécifier les quatre types de curseurs pour les curseurs Transact-SQL. Ces curseurs diffèrent au niveau de leur capacité à détecter les modifications effectuées dans l'ensemble de résultats ainsi que dans les ressources qu'ils utilisent, par exemple la mémoire et l'espace de stockage dans tempdb. Un curseur peut détecter des modifications apportées à des lignes uniquement lorsqu'il tente d'extraire ces lignes pour la seconde fois. Il n'existe aucun moyen pour la source de données d'informer le curseur des modifications apportées aux lignes en cours d'extraction. La capacité d'un curseur à détecter les modifications est également influencée par le niveau d'isolement d'une transaction.

Les quatre types de curseurs de serveur API pris en charge par SQL Server sont les suivants :

  • curseurs statiques ;

  • curseurs dynamiques ;

  • curseurs avant uniquement ;

  • curseurs pilotés par jeux de clés.

Les curseurs statiques détectent peu ou pas de modifications, mais consomment relativement peu de ressources pendant le défilement. Les curseurs dynamiques détectent toutes les modifications mais consomment davantage de ressources pendant le défilement. Les curseurs pilotés par jeux de clés se situent entre les deux curseurs précités. Ils détectent la plupart des modifications mais utilisent moins de ressources que les curseurs dynamiques.

Bien que, selon les modèles de curseurs de l'API de base de données, le curseur avant uniquement est considéré comme un type de curseur distinct, SQL Server ne reconnaît pas cette classification. Pour SQL Server, « avant » et « défilement » sont des options qui peuvent être appliquées aux curseurs statiques, dynamiques et de jeux de clés.