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( '數據庫名稱')