Buenas,
Estoy realizando un script en el que una transaccion necesita insertar un
registro en una tabla, digamos Persona, no deseo bloquearla, entonces utilizo
el nivel de aislamiento "read committed", a continuacion de insertar el
registro, necesito actualizar otro registro en otra tabla, digamos Contador,
pero aqui si es necesario bloquear el registro, para esto se utilizaria el
nivel de aislamiento "serializable".
Estoy realizando pruebas para ver que tan eficiente seria, pero en el
momento en que coloca el nivel de aislamiento serializable bloquea ademas la
tabla Persona aunque ya haya realizado la insercion.
Aqui les muestro el codigo:
***
set transaction isolation level read committed
begin tran
insert into Persona(Nombre) values('X')
begin tran
set transaction isolation level serializable
declare @Cont bigint
set @Cont = (select max(idContador) from Contador)
update Contador set idContador = @Cont + 1
commit tran
commit tran
***
Mi consulta es, cuando se utiliza otro nivel de aislamiento aunque sea en
otra transaccion, las modificaciones hechas antes tambien utilizan ese nivel
de aislamiento?
Muchas gracias...
Leer las respuestas