經(jīng)過測試此種方法最好用
SQLSERVER2005中創(chuàng)建數(shù)據(jù)庫發(fā)生無法獲得數(shù)據(jù)庫'model'上的排他鎖是怎么回事?
創(chuàng)建數(shù)據(jù)庫失敗,提示無法獲得數(shù)據(jù)庫‘model’上的排他鎖,如下圖所示:
解決方法:
在查詢分析器中運(yùn)行如下代碼即可:
use master
declare @sql varchar(100)
while 1=1
begin
select top 1 @sql = 'kill '+cast(spid as varchar(3))
from master..sysprocesses
where spid > 50 and spid <> @@spid
if @@rowcount = 0
break
exec(@sql)
end
原因分析:
死鎖是指在某組資源中,兩個或兩個以上的線程在執(zhí)行過程中,在爭奪某一資源時而造成互相等待的現(xiàn)象,若無外力的作用下,它們都將無法推進(jìn)下去,死時就可能會產(chǎn)生死鎖,這些永遠(yuǎn)在互相等待的進(jìn)程稱為死鎖線程。簡單的說,進(jìn)程A等待進(jìn)程B釋放他的資源,B又等待A釋放他的資源,這樣互相等待就形成死鎖。