1. 程式人生 > >還原數據庫錯誤- ”因為數據庫正在使用,所以無法獲得數據的獨占使用權“

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

spro href 頁簽 database all www. htm 斷開 工具

原帖:

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

以上方法都試過,無用。

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

技術分享圖片

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