Bloquear la lectura de un registro. MS-SQL2005 SP2

15/12/2008 - 17:01 por Rafael Cano | Informe spam
Hola a todos:

¿Cómo puedo bloquear dentro de una transacción un registro?
Creía que con esto se podía:

SELECT * FROM MiEsquema.MiTabla
WITH (XLOCK, ROWLOCK) WHERE PK_KEY = Valor;

Pero me bloquea la lectura de la tabla por completo

Quiero que funcione esta instruccion
SELECT * FROM MiEsquema.MiTabla
WHERE PK_KEY != Valor;

Quiero que se quede esperando la select en el caso de que la selección
de datos coja el id bloqueado.
SELECT * FROM MiEsquema.MiTabla

Al ser posible quiero que la solución sea independiente a como esté
configurado el comando SET TRANSACTION ISOLATION LEVEL la base de datos
está en READ COMMITTED.



Salu2 Rafael Cano
rcanop(arroba)yahoo.es
Jaén - España
Villamartín - Cádiz - España

Preguntas similare

Leer las respuestas

#6 Rafael Cano
15/12/2008 - 21:04 | Informe spam
Si es necesario el bloqueo de esta forma, ya que se utiliza para dar
unos números consecutivos. Eso sí se llama únicamente para al finalizar
la transacción por lo que el tiempo de bloqueo es mínimo.

Gracias por tu interés Rubén. Como he dicho antes las pruebas las hacía
malamente y en verdad si se producía el bloqueo que quería.

Rubén Garrigós escribió:
Mostrar la cita
Salu2 Rafael Cano
rcanop(arroba)yahoo.es
Jaén - España
Villamartín - Cádiz - España
#7 Rafael Cano
15/12/2008 - 21:05 | Informe spam
Gracías por el interés.

Gustavo Larriera (MVP) escribió:
Mostrar la cita
Salu2 Rafael Cano
rcanop(arroba)yahoo.es
Jaén - España
Villamartín - Cádiz - España
#8 Leonardo Azpurua
16/12/2008 - 16:37 | Informe spam
"Rafael Cano" escribió en el mensaje
news:
Mostrar la cita
Hola, Rafael:

SQL realiza un bloqueo automático cuando el registro se modifica dentro de
una transacción.

La solución "portatil" que encontré fue incrementar el contador y luego
tomar el valor modificado y restarle uno.

Como de cualquier modo vas a modificarlo, da igual que lo imncrementes antes
o despues de leerlo.


Salud!
#9 Rafael Cano
16/12/2008 - 16:45 | Informe spam
Eso que comentas lo he podido hacer en otro proceso, gracias por tu
aportación.

Leonardo Azpurua escribió:
Mostrar la cita
Salu2 Rafael Cano
rcanop(arroba)yahoo.es
Jaén - España
Villamartín - Cádiz - España
Ads by Google
Search Busqueda sugerida