Problemas con transacciones

22/07/2003 - 01:12 por Mario | Informe spam
Quisiera saber si existe un comando en SQL Server para
realizar lo siguiente:

Tengo 2 client que quieren consultar al mismo registro
Un cliente actualiza un campo. Por ejemplo de "A" a "B".
Sin antes que termine la transacción el otro cliente lee
el registro como "B"

Que puedo hacer para que el segundo cliente lea el campo
com "A" sin tener que bloquearlo y sin tener que terminar
la transaccion.

Ejemplo:
Primer Cliente:

BEGIN TRAN
UPDATE CUSTOMERS SET ADDRESS = 'Hidalgo Street'
WHERE CUSTOMERID = 'ALFKI'


Second Client:
SELECT * FROM CUSTOMERS WHERE CUSTOMERID = 'ALFKI'

El puede ver en el campo dirección:
Obere Str. 57

Y yo quiero que vea
Hidalgo Street

Espero su respuesta
Gracias
 

Leer las respuestas

#1 Carlos Sacristan
22/07/2003 - 07:56 | Informe spam
En el segundo cliente tendrás que indicar que no quieres usar bloqueos,
algo como:

SELECT * FROM CUSTOMERS WITH (NOLOCK) WHERE CUSTOMERID = 'ALFKI'

Espero que sepas lo que supone leer un registro que aún no ha sido
confirmado...



Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

Por favor, responder únicamente al foro

(Guía de netiquette del foro)
http://www.helpdna.net/bosqlfaq00.htm
http://perso.wanadoo.es/rubenvigon/foro

(FAQ's de SQL Server)
http://support.microsoft.com/defaul.../70faq.asp
http://www.helpdna.net/bosqlfaq.htm

"Mario" escribió en el mensaje
news:03c201c34fdd$8f5ded10$
Quisiera saber si existe un comando en SQL Server para
realizar lo siguiente:

Tengo 2 client que quieren consultar al mismo registro
Un cliente actualiza un campo. Por ejemplo de "A" a "B".
Sin antes que termine la transacción el otro cliente lee
el registro como "B"

Que puedo hacer para que el segundo cliente lea el campo
com "A" sin tener que bloquearlo y sin tener que terminar
la transaccion.

Ejemplo:
Primer Cliente:

BEGIN TRAN
UPDATE CUSTOMERS SET ADDRESS = 'Hidalgo Street'
WHERE CUSTOMERID = 'ALFKI'


Second Client:
SELECT * FROM CUSTOMERS WHERE CUSTOMERID = 'ALFKI'

El puede ver en el campo dirección:
Obere Str. 57

Y yo quiero que vea
Hidalgo Street

Espero su respuesta
Gracias

Preguntas similares