begin tran
update [user] set fnc='xue' where userid=20361
waitfor delay '00:00:10'
commit tran
-----------------------事务1select * from [user] where userid=888888
-----------------------事务2当事务1没有执行完成的时候事务2是不允许执行的,也就是说update 一条记录的时候也是下表级的排它锁,我就感到很怪了,MSSQL为什么不下行级锁呢?这样不是可以减少锁的粒度吗?有谁可以解释一下。
update [user] set fnc='xue' where userid=20361
waitfor delay '00:00:10'
commit tran
-----------------------事务1select * from [user] where userid=888888
-----------------------事务2当事务1没有执行完成的时候事务2是不允许执行的,也就是说update 一条记录的时候也是下表级的排它锁,我就感到很怪了,MSSQL为什么不下行级锁呢?这样不是可以减少锁的粒度吗?有谁可以解释一下。
对于你的情况,如果ueserid是主键的话,你的那个事务不会阻塞