sql server 還原數據庫時提示數據庫正在使用,無法進行操作的解決方法


sql server 還原數據庫的時候,提示"因為數據庫正在使用,所以無法獲得對數據庫的獨占訪問權",無論我是重啟數據庫,還是重啟計算機,分離數據庫,都不能解決問題,多番嘗試后,並且查找資料之后,終於解決了該問題。 

 

一、利用SQL語句,殺死正在使用該數據庫的所有進程 代碼如下 

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 

  

  該SQL語句利用游標循環所有正在使用該數據庫的進程,並通過kill命令殺死進程。 

二、利用SQL語句,斷開所有用戶鏈接,並回滾所有事務,具體SQL語句如下 

ALTER DATABASE [數據庫名稱] SET OFFLINE WITH ROLLBACK IMMEDIATE 

注意:

 1.SQL語句要在master數據庫下面執行

 2.查看是否清除干凈可以用如下sql語句 

select * from master..sysprocesses where dbid=db_id( '數據庫名稱') 

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM