Lock de registro

22/07/2004 - 23:05 por Giovany | Informe spam
Un Saludo,como puedo realizar un bloqueo de un registro,
del tal manera que otros usuario no pueda leerlo mientras
la transaccion no haya terminado y actualizado dicho
registro, he probado con SET TRANSACTION ISOLATION LEVEL
SERIALIZABLE o poniendo la segerencia de bloque en el
from asi :

BEGIN TRANSACTION

SELECT numero+1
from correlativos WITH (XLOCK)
where aplicacion

Insert into pagos...

Update agenda_pagos
..

Update correlativos set numero=numero+1
where aplicacion

COMMIT TRANSACTION

pero la otra sesion tambien obtiene el mismo
numero, no se donde esta mi problema y seguramente no he
entendido bien forma de hacerlo,
si por favor pueden ayudarme.

le agradezco
 

Leer las respuestas

#1 Gustavo Larriera [MVP SQL]
23/07/2004 - 02:19 | Informe spam
No necesitas hacer nada especial ni cambiar el Isolation Level. El bloqueo
es automático y es la forma normal de funcionamiento.

BEGIN TRANSACTION
INSERT
UPDATE
UPDATE
COMMIT TRANSACTION


Gustavo Larriera
Uruguay LatAm
http://sqljunkies.com/weblog/gux/
Este mensaje se proporciona "COMO ESTA" sin garantias y no otorga ningun
derecho / This posting is provided "AS IS" with no warranties, and confers
no rights.
"Giovany" wrote in message
news:252701c4702f$9b5d8df0$
Un Saludo,como puedo realizar un bloqueo de un registro,
del tal manera que otros usuario no pueda leerlo mientras
la transaccion no haya terminado y actualizado dicho
registro, he probado con SET TRANSACTION ISOLATION LEVEL
SERIALIZABLE o poniendo la segerencia de bloque en el
from asi :

BEGIN TRANSACTION

SELECT numero+1
from correlativos WITH (XLOCK)
where aplicacion

Insert into pagos...

Update agenda_pagos
..

Update correlativos set numero=numero+1
where aplicacion

COMMIT TRANSACTION

pero la otra sesion tambien obtiene el mismo
numero, no se donde esta mi problema y seguramente no he
entendido bien forma de hacerlo,
si por favor pueden ayudarme.

le agradezco




Preguntas similares