UPDATE con WITH ROWLOCK

15/06/2006 - 19:49 por Isaias | Informe spam
Estoy teniendo problemas de registros agarrados (Dead_Lock) con el siguiente
panorama, 20 usuarios conectados simultanemente, van a una tabla y TOMAN un
registros, de la siguiente forma:

BEGIN TRAN Asigna_Registro
SET ROWCOUNT 1
UPDATE MyTabla SET Status = 2, Empleado = @Empleado WHERE Campaña =
@Campaña AND Status = 1
SET ROWCOUNT 0
COMMIT TRAN Asigna_Registro



Para solventar el problema estaba pensando agregar en la clausula de UPDATE

UPDATE MyTabla (WITH ROWLOCK)

Me gustaria leer comentarios sobre mi posible solucion al problema.

Saludos
IIslas
 

Leer las respuestas

#1 Alejandro Mesa
15/06/2006 - 20:27 | Informe spam
Isaias,

Por que encierras esa sentencia en una transaccion explicita?
Por que usas ROWCOUNT?

De todas maneras te comento que el deadlock se debe a que los objetos estan
sientdo accesidos en diferente orden. Yo primero localizaria que
procedimientos y/o objetos estan participando en el deadlock y trataria de
corregirlos.

INF: Analyzing and Avoiding Deadlocks in SQL Server
http://support.microsoft.com/defaul...-us;169960

Tracing Deadlocks
http://www.sqlservercentral.com/col...dlocks.asp


AMB

"Isaias" wrote:

Estoy teniendo problemas de registros agarrados (Dead_Lock) con el siguiente
panorama, 20 usuarios conectados simultanemente, van a una tabla y TOMAN un
registros, de la siguiente forma:

BEGIN TRAN Asigna_Registro
SET ROWCOUNT 1
UPDATE MyTabla SET Status = 2, Empleado = @Empleado WHERE Campaña =
@Campaña AND Status = 1
SET ROWCOUNT 0
COMMIT TRAN Asigna_Registro



Para solventar el problema estaba pensando agregar en la clausula de UPDATE

UPDATE MyTabla (WITH ROWLOCK)

Me gustaria leer comentarios sobre mi posible solucion al problema.

Saludos
IIslas

Preguntas similares