可以的:使用rowlock1 如何锁一个表的某一行A 连接中执行SET TRANSACTION ISOLATION LEVEL REPEATABLE READbegin tran select * from tablename with (rowlock) where id=3 waitfor delay '00:00:05' commit tran B连接中如果执行update tablename set colname='10' where id=3 --则要等待5秒update tablename set colname='10' where id<>3 --可立即执行
这个可以,只不过,需要建立相应的索引,才能支持,比如如下的语句,就可以:select * from tb WITH(XLOCK) where id = 5如果在id列上有索引,应该是可以达到你的需求的,就是在id为5的这一行,有一个x排他锁
另外,你可以通过如下的试图来查看,到底是否是加了排他锁的:select * from sys.dm_tran_locks
这个可以,只不过,需要建立相应的索引,才能支持,比如如下的语句,就可以:select *
from tb WITH(XLOCK)
where id = 5如果在id列上有索引,应该是可以达到你的需求的,就是在id为5的这一行,有一个x排他锁
from sys.dm_tran_locks