Posted by John Rivers on 02/05/06 00:17
if you want to do that
you need to ensure you obtain all the locks required for the whole
transaction in the first statement
for example:
Session 1:
BEGIN TRAN
insert into joe with (tablockx) (c1,c2) values (1,2)
Session 2:
BEGIN TRAN
insert into joe with (tablockx) (c1,c2) values (3,4)
Session 1:
select * from joe
Session 2:
select * from joe
deadlocks only occur when developers don't understand locking
and they can render a production system virtually unusable ...
[Back to original message]
|