hice esta prueba
Código SQL:
Ver originalCREATE TABLE TestDeadLock(
id INT,
name VARCHAR(20),
STATUS bit
)
INSERT INTO TestDeadLock VALUES (1,'uno',0)
INSERT INTO TestDeadLock VALUES (2,'dos',0)
INSERT INTO TestDeadLock VALUES (3,'tres',0)
DECLARE @id INT
SELECT top 1 @id=id FROM TestDeadLock WHERE STATUS=0 ORDER BY id
print @id
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE
BEGIN tran
UPDATE TestDeadLock
SET STATUS=1
WHERE id=@id
commit tran
y en otra ventana:
select top 1 id,name from TestDeadLock where status=0 order by id
y el resultado del segundo select fue el 2 porque el uno se estaba actualizando asi que al siguiente usuario le daria un 2 al siguiente un 3 y asi sucesivamente, de esta forma no te sirve??