buenos dias!!!
tengo un stored procedure que hace un select de una tabla y despues
inserta en otra tabla un id que obtuvo de la primera.
Mi problema es que esto lo van a usar muchos usuarios
de forma concurrente y quiero evitar que se queden bloqueados, por el insert.
basicamente el stored procedure hace algo como esto:
select @id = tab1_id from tabla1 left join tabla2 with (nolock) on tab1_id =
tab2_id where tab2_id is null
insert into tabla2(etc,etc,etc) values(@id,etc,etc)
mi problema es que, deseo que cuando un usuario A esta haciendo el insert,
otro usuario B que ejecute el stored procedure no se quede bloqueado en el
primer select, esperando que el insert finalice o haga el commit y se libere
el bloqueo de la segunda tabla. Yo trate de solucionarlo agregandole el WITH
(NOLOCK) al primer select, como se aprecia mas arriba, pero, luego de buscar
informacion en la red, no me queda claro si el nolock me sirve para evitar
los bloqueos que pueda producir un insert. No importa que se lean registros
"sucios" de la segunda tabla, porque no es informacion de vida o muerte.
No se si soy claro, espero que si. desde ya muchas gracias por su tiempo!!!
salu2
Leer las respuestas