[SQL SERVER][TS] 解決無法取得資料庫 'model' 的獨佔鎖定。

[SQL SERVER][TS] 解決無法取得資料庫 'model' 的獨佔鎖定。

網友問題

 

系統資料庫:Model

當我們在建立新資料庫時,都會複製 model 資料庫的內容(執行個體上資料庫的範本),

來作為新資料庫的第一部份,所以如果你修改 model 資料庫相關內容,

好比資料庫選項、function、table、store procedure..等相關物件,

那後續所建立的資料庫都會繼承相關變更,

而且當我們每次啟動SQL Server時都會建立 tempdb,

所以 model 資料庫一定要存在於SQL Server系統中。

 

狀況模擬

1. model 資料庫有相關正在執行的作業處理序

select spid,waitresource,waittime , program_name,status,cmd,hostname
from  sys.sysprocesses
where db_name(dbid) = 'model'

image

 

當你要建立資料庫就會發生下面錯誤

image

 

解決方法:終止該作業處理序

Kill 53

 

2. SSMS session 存在 model 資料庫

image

這和第一個狀況很類似,查詢 model process 資訊如下

image

 

雖然該 process status=sleeping,但你還是無法正常建立資料庫。

image

 

解決方法:Kill spid 或關掉SSMS session

 

 

參考

model 資料庫