日期:2014-05-17 浏览次数:20697 次
begin tran select * from a with (updlock, tablock, holdlock) where t1=3 waitfor delay '00:00:18' commit tran
友情帮顶.蹭分
------解决方案--------------------
更新就是X或IX锁!
------解决方案--------------------
tablock锁定整个表
updlock更新锁,本来允许其他共享锁的,但是由于表所存在,实际就不再允许其他的共享锁了
holdlock这是个保持所的概念,就是多有的锁保持到事务结束
这三个组合,系统应该自动升级为拍他的表锁,事务结束前这个表不允许其他任何操作。
------解决方案--------------------
要先申请到排他(IX锁和X锁)才能进行更新(U锁)的呀.
------解决方案--------------------
再打开一个新连接, 发现select 查询语句也卡住了.
另一个连接用with(nolock)查询试试
------解决方案--------------------
看看这个 :
http://blog.csdn.net/arrow_gx/archive/2009/03/19/4004938.aspx
------解决方案--------------------
你不是有updlock这个么。。。那么就会有X或IX
------解决方案--------------------
select * from a with (updlock, tablock, holdlock) where t1=3 exec sp_lock select @@spid waitfor delay '00:00:02'
------解决方案--------------------
留名~学习
------解决方案--------------------