Share via


Niveaux d'isolement des transactions de curseur

Vous pouvez déterminer le comportement de verrouillage des transactions d'un curseur particulier en associant les comportements de verrouillage du paramètre de concurrence d'accès du curseur, les indicateurs de verrouillage spécifiés dans l'instruction SELECT du curseur et les options des niveaux d'isolement des transactions.

MicrosoftSQL Server prend en charge les niveaux d'isolation de la transaction de curseurs suivants :

  • Read Committed (lecture validée)
    SQL Server obtient un verrou partagé pendant la lecture d'une ligne dans un curseur, mais libère immédiatement le verrou après la lecture de cette ligne. Étant donné que des demandes de verrou partagé sont bloquées par un verrou exclusif, un curseur ne peut pas lire la ligne qu'une autre tâche a mise à jour mais n'a pas encore validée. Read Committed est la valeur par défaut du niveau d'isolement pour SQL Server et ODBC.

  • Read Uncommitted (lecture non validée)
    SQL Server ne demande pas de verrous pendant la lecture d'une ligne dans un curseur et n'utilise pas de verrous exclusifs. Les curseurs peuvent être remplis avec des valeurs ayant déjà été mises à jour, mais n'ayant pas encore été validées. L'utilisateur ignore tous les mécanismes de contrôle des transactions de verrouillage de SQL Server.

  • Repeatable Read ou Serializable (lecture renouvelable ou sérialisable)
    SQL Server demande un verrou partagé sur chacune des lignes au fur et à mesure de leur lecture dans le curseur, comme avec READ COMMITTED, mais si le curseur est ouvert pendant une transaction, les verrous partagés sont maintenus jusqu'à la fin de la transaction au lieu d'être libérés une fois la ligne lue. Ceci équivaut à spécifier HOLDLOCK dans une instruction SELECT.

  • Snapshot (capture instantanée)
    SQL Server ne demande pas de verrous pendant la lecture d'une ligne dans un curseur et n'utilise pas de verrous exclusifs. Le curseur est rempli avec les valeurs qui étaient en vigueur lors du démarrage de la transaction. Les verrous de défilement sont néanmoins demandés quelle que soit l'utilisation de l'isolement de capture instantanée.