Partager via


Types de curseurs

S’applique à : SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics 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 en fonction de 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.

Il s’agit des 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 généré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. Les curseurs statiques SQL Server sont toujours en lecture seule. Étant donné qu’un curseur de 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 maximale de ligne 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)