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
 

Leer las respuestas

#1 Gustavo Larriera (MVP)
15/12/2008 - 19:47 | Informe spam
Muestre el CREATE TABLE y los CREATE INDEX que usted tiene.

Gustavo Larriera, Microsoft MVP
http://www.linkedin.com/in/gustavolarriera
Este mensaje se proporciona tal como es, sin garantías de ninguna clase.



"Rafael Cano" wrote:

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 similares