Problemas con los bloqueos en la base de datos

13/08/2003 - 11:45 por dcanete | Informe spam
Tengo el siguiente problema de bloqueo en la base de datos. Lanzo el
primer script en una conexion, luego lanzo el segundo en otra conexion
que se queda pillado hasta que finalizo la transaccion.
La tabla MensualidadesAplicacionesPresupuestarias tiene un indice
agrupado en la clave autonumérica
(idMensualidadAplicacionesPresupuestaria)
¿Esto es normal? ¿Cómo lo puedo solucionar?

SET TRANSACTION ISOLATION LEVEL REPEATABLE READ

GO
begin tran
UPDATE MensualidadesAplicacionesPresupuestarias SET
MensualidadesAplicacionesPresupuestarias.fModificacion = getdate()
WHERE (MensualidadesAplicacionesPresupuestarias.idAplicacionPresupuestaria
= 484) and (MensualidadesAplicacionesPresupuestarias.cMes = 08)

select * from MensualidadesAplicacionesPresupuestarias
WHERE (MensualidadesAplicacionesPresupuestarias.idAplicacionPresupuestaria
= 484) and (MensualidadesAplicacionesPresupuestarias.cMes = 08)



SET TRANSACTION ISOLATION LEVEL REPEATABLE READ

GO
begin tran
UPDATE MensualidadesAplicacionesPresupuestarias SET
MensualidadesAplicacionesPresupuestarias.fModificacion = getdate()
WHERE (MensualidadesAplicacionesPresupuestarias.idAplicacionPresupuestaria
= 128) and (MensualidadesAplicacionesPresupuestarias.cMes = '08')
 

Leer las respuestas

#1 Emilio Boucau
13/08/2003 - 15:21 | Informe spam
Daniel,

mientras tengas una transaccion con REPEATABLE READ, ninguna otra conexion
podra tocar esos datos, pues este tipo de aislamiento te asegura que seras
capaz de obtener los MISMOS datos que antes en sucesivas lecturas dentro de
la transaccion (de alli su nombre). Deberas cambiar el nivel que usas. Ese
es tu problema.

Saludos !

Emilio Boucau
Microsoft MVP SQL Server
http://www.portalsql.com
PASS Spanish Group
http://www.sqlpass.org

Buenos Aires - Argentina

Preguntas similares