還原數據庫錯誤- ”因為數據庫正在使用,所以無法獲得數據的獨占使用權“


 

原帖:

https://bbs.csdn.net/topics/390975781

https://www.cnblogs.com/accumulater/p/6552385.html

1,設置數據庫在單用戶模式下工作。
設置方法:在需要還原的數據庫上右擊,在右鍵菜單命令上選擇"屬性"- >"選項"- >"狀態"- >"限制訪問"- >"Single"。這是SQLSERVER2005的菜單命令,其它版本請自己查找。

2,利用SQL語句,殺死正在使用該數據庫的所有進程,自己以前在做一個SQL SERVER操作小工具的時候有寫過該功能的SQL,貼出來供大家參考:

 1 declare @dbname varchar(50)
 2 set @dbname='數據庫名稱'
 3 declare @sql varchar(50)
 4 declare cs_result cursor local for select 'kill '+cast(spid as varchar(50)) from sys.sysprocesses where db_name(dbid)=@dbname 
 5 open cs_result
 6 fetch next from cs_result into @sql
 7 while @@fetch_status=0
 8 begin
 9     execute(@sql)
10     fetch next from cs_result into @sql
11 end
12 close cs_result
13 deallocate cs_result



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

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

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

 

以上方法都試過,無用。

后來查看還原窗口左側選項頁簽,把結尾日志備份選項取消勾選還原成功。


免責聲明!

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



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