Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
El comportamiento del bloqueo de transacciones de un cursor específico se determina mediante la combinación de los comportamientos de bloqueo de la configuración de simultaneidad del cursor, las sugerencias de bloqueo especificadas en la instrucción SELECT del cursor y las opciones del nivel de aislamiento de transacciones.
Microsoft SQL Server 2005 admite estos niveles de aislamiento para las transacciones de cursores:
READ COMMITED (Lectura de confirmadas)
SQL Server adquiere un bloqueo compartido mientras incluye una fila en un cursor pero libera el bloqueo inmediatamente después de leer la fila. Debido a que las peticiones de bloqueo compartido quedan bloqueadas por un bloqueo exclusivo, se evita que un cursor lea una fila que otra tarea ha actualizado pero que aún no ha confirmado. La lectura de confirmadas es la configuración predeterminada para el nivel de aislamiento de SQL Server y ODBC.
READ UNCOMMITED (Lectura de no confirmadas)
SQL Server no solicita bloqueos mientras incluye una fila en un cursor y no respeta ningún bloqueo exclusivo. Se pueden llenar los cursores con valores que ya se han actualizado pero que aún no se han confirmado. El usuario evita todos los mecanismos de control del bloqueo de transacciones de SQL Server 2005.
REPEATABLE READ (Lectura repetible) o SERIALIZABLE
SQL Server 2005 solicita un bloqueo compartido en cada fila a medida que la incluye en el cursor, como en READ COMMITTED, pero si el cursor se abre dentro de una transacción, se mantienen los bloqueos compartidos hasta el final de la transacción en lugar de liberarse tras leer la fila. Esto tiene el mismo efecto que especificar HOLDLOCK en una instrucción SELECT.
SNAPSHOT (Instantánea)
SQL Server no solicita bloqueos mientras incluye una fila en un cursor y no respeta ningún bloqueo exclusivo. El cursor se llena con los valores a partir del momento en que se inicia por primera vez la transacción. Se siguen solicitando bloqueos de desplazamiento, con independencia del uso de aislamiento de instantánea.
Vea también
Conceptos
Personalizar el nivel de aislamiento de transacción
Ajustar los niveles de aislamiento de transacción
Simultaneidad de cursor (motor de base de datos)