SQLSERVER2005中創(chuàng)建數(shù)據(jù)庫發(fā)生無法獲得數(shù)據(jù)庫'model'上的排他鎖是怎么回事?
文章出處:http://www.sgrivertours.com 作者:興邦研發(fā)部 人氣: 發(fā)表時(shí)間:2014年06月17日
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
原因分析:
死鎖是指在某組資源中,兩個(gè)或兩個(gè)以上的線程在執(zhí)行過程中,在爭奪某一資源時(shí)而造成互相等待的現(xiàn)象,若無外力的作用下,它們都將無法推進(jìn)下去,死時(shí)就可能會(huì)產(chǎn)生死鎖,這些永遠(yuǎn)在互相等待的進(jìn)程稱為死鎖線程。簡單的說,進(jìn)程A等待進(jìn)程B釋放他的資源,B又等待A釋放他的資源,這樣互相等待就形成死鎖。