Partager via


Types de curseurs

S’applique à :SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

ODBC définit quatre types de curseurs pris en charge par Microsoft SQL Server et le pilote ODBC SQL Server Native Client. Ces curseurs varient dans leur capacité à détecter les modifications apportées au jeu de résultats et dans les ressources qu’ils consomment, telles que la mémoire et l’espace dans tempdb. Un curseur peut détecter des modifications apportées à des lignes uniquement lorsqu'il tente d'extraire à nouveau ces lignes ; 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 des modifications qui n'ont pas été apportées par le biais du curseur est également influencée par le niveau d'isolation de la transaction.

Voici les quatre types de curseurs ODBC pris en charge par SQL Server :

  • Les curseurs avant uniquement ne prennent pas en charge le défilement, mais seulement l'extraction de lignes en séquence à partir du début jusqu'à la fin du curseur.

  • Les curseurs statiques sont intégrés dans tempdb lorsque le curseur est ouvert. Ils affichent toujours l'ensemble de résultats tel qu'il était au moment où le curseur a été ouvert. Ils ne reflètent jamais les modifications apportées aux données. SQL Server Les curseurs statiques sont toujours en lecture seule. Étant donné qu’un curseur serveur statique est généré en tant que table de travail dans tempdb, la taille du jeu de résultats du curseur ne peut pas dépasser la taille de ligne maximale autorisée par SQL Server.

  • L'appartenance et l'ordre des lignes dans le jeu de résultats des curseurs de jeux de clés sont fixés au moment de l'ouverture du curseur. Les modifications aux colonnes non-clés sont visibles à travers le curseur.

  • Les curseurs dynamiques sont le contraire des curseurs statiques. Les curseurs dynamiques reflètent toutes les modifications apportées aux lignes de leur jeu de résultats. Les valeurs des données, l'ordre et l'appartenance des lignes du jeu de résultats peuvent changer à chaque extraction.

Voir aussi

Utilisation de curseurs (ODBC)