今天在還原數據庫的時候,提示"因為數據庫正在使用,所以無法獲得對數據庫的獨占訪問權",無論我是重啟數據庫,還是重啟計算機,都不能解決問題,多番嘗試后,終于解決了該問題。現將引發該問題的原因與解決方案寫出來,有不對的地方歡迎大家提出來。 引發原
今天在還原數據庫的時候,提示"因為數據庫正在使用,香港虛擬主機,所以無法獲得對數據庫的獨占訪問權",無論我是重啟數據庫,還是重啟計算機,香港服務器租用,都不能解決問題,多番嘗試后,終于解決了該問題。現將引發該問題的原因與解決方案寫出來,有不對的地方歡迎大家提出來。
引發原因:是因為我在還原數據庫的時候,還有其他的用戶正在使用數據庫,所以就會出現以上提示。
解決辦法有三種:
第一種:利用游標循環所有正在使用該數據庫的進程,并通過kill命令殺死進程。
declare @dbname varchar(50)
set @dbname='數據庫名稱'
declare @sql varchar(50)
declare cs_result cursor local for select 'kill '+cast(spid as varchar(50)) from sys.sysprocesses where db_name(dbid)=@dbname
open cs_result
fetch next from cs_result into @sql
while @@fetch_status=0
begin
execute(@sql)
fetch next from cs_result into @sql
end
close cs_result
deallocate cs_result
注意:不要在需要的還原的數據庫下執行,建議在master數據庫下面執行
第二種:利用SQL語句,斷開所有用戶鏈接,并回滾所有事務
ALTER DATABASE [數據庫名稱]
SET OFFLINE WITH ROLLBACK IMMEDIATE
注意:不要在需要的還原的數據庫下執行,建議在master數據庫下面執行
第三種:設置數據庫在單用戶模式下工作
在需要還原的數據庫上右擊,香港空間,在右鍵菜單命令上選擇"屬性"- >"選項"- >"狀態"- >"限制訪問"- >"Single"。這是SQLSERVER2005的菜單命令,其它版本請自己查找
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com