Los cursores desplazables y aislamiento de transacción
En la tabla siguiente se enumeran los factores que rigen la visibilidad de los cambios.
Cambios realizados por: | La visibilidad depende de: |
---|---|
Cursor | Tipo de cursor, implementación del cursor |
Otras instrucciones de la misma transacción | Tipo de cursor |
Instrucciones en otras transacciones | Tipo de cursor, nivel de aislamiento de transacción |
Estos factores se muestran en la siguiente ilustración.
En la tabla siguiente se resume la capacidad de cada tipo de cursor para detectar los cambios realizados por sí mismo, por otras operaciones en su propia transacción y por otras transacciones. La visibilidad de estos últimos cambios depende del tipo de cursor y del nivel de aislamiento de transacción que contiene el cursor.
Tipo de cursor\acción | Self | Propietario Txn |
Otros Txn (RU[a]) |
Otros Txn (RC[a]) |
Otros Txn (RR[a]) |
Otros Txn (S[a]) |
---|---|---|---|---|---|---|
Estático | ||||||
Insertar | Tal vez[b] | No | N.º | N.º | N.º | No |
Actualizar | Tal vez[b] | No | N.º | N.º | N.º | No |
Eliminar | Tal vez[b] | No | N.º | N.º | N.º | No |
Dirigido por conjuntos de claves | ||||||
Insertar | Tal vez[b] | No | N.º | N.º | N.º | No |
Actualizar | Sí | Sí | Sí | Sí | No | No |
Eliminar | Tal vez[b] | Sí | Sí | Sí | No | No |
Dinámica | ||||||
Insertar | Sí | Sí | Sí | Sí | Sí | No |
Actualizar | Sí | Sí | Sí | Sí | No | No |
Eliminar | Sí | Sí | Sí | Sí | No | No |
[a] Las letras entre paréntesis indican el nivel de aislamiento de transacción que contiene el cursor; el nivel de aislamiento de la otra transacción (en la que se realizó el cambio) es irrelevante.
RU: Lectura no confirmada
RC: Lectura confirmada
RR: Lectura repetible
S: Serializable
[b] Depende de cómo se implemente el cursor. Si el cursor puede detectar estos cambios se notifica a través de la opción SQL_STATIC_SENSITIVITY en SQLGetInfo.