Curseurs avec défilement et isolation des transactions
Le tableau suivant répertorie les facteurs qui régissent la visibilité des modifications.
Modifications apportées par : | La visibilité dépend des éléments suivants : |
---|---|
Curseur | Type de curseur, implémentation du curseur |
Autres instructions dans la même transaction | Type de curseur |
Instructions dans d’autres transactions | Type de curseur, niveau d’isolation des transactions |
Ces facteurs sont présentés dans l’illustration suivante.
Le tableau suivant résume la capacité de chaque type de curseur à détecter les modifications apportées par elle-même, par d’autres opérations dans sa propre transaction et par d’autres transactions. La visibilité des dernières modifications dépend du type de curseur et du niveau d’isolation de la transaction contenant le curseur.
Type de curseur\action | Self | Prop Txn |
Othr Txn (RU[a]) |
Othr Txn (RC[a]) |
Othr Txn (RR[a]) |
Othr Txn (S[a]) |
---|---|---|---|---|---|---|
statique | ||||||
Insérer | Peut-être[b] | Non | Non | Non | Non | Non |
Update | Peut-être[b] | Non | Non | Non | Non | Non |
Supprimer | Peut-être[b] | Non | Non | Non | Non | Non |
Curseur piloté par jeu de clés | ||||||
Insérer | Peut-être[b] | Non | Non | Non | Non | Non |
Update | Oui | Oui | Oui | Oui | No | Non |
Supprimer | Peut-être[b] | Oui | Oui | Oui | No | Non |
Dynamique | ||||||
Insérer | Oui | Oui | Oui | Oui | Oui | Non |
Update | Oui | Oui | Oui | Oui | No | Non |
Supprimer | Oui | Oui | Oui | Oui | No | Non |
[a] Les lettres entre parenthèses indiquent le niveau d’isolation de la transaction contenant le curseur ; le niveau d’isolation de l’autre transaction (dans laquelle la modification a été apportée) n’est pas pertinent.
RU : Lecture non validée
RC : Lecture validée
RR : lecture reproductible
S : Serializable
[b] Dépend de la façon dont le curseur est implémenté. Indique si le curseur peut détecter ces modifications par le biais de l’option SQL_STATIC_SENSITIVITY dans SQLGetInfo.