从.bak文件还原sql server无法获取独占访问权限

前端之家收集整理的这篇文章主要介绍了从.bak文件还原sql server无法获取独占访问权限前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图恢复我的sql使用bak文件

我收到错误

无法获取独占访问权限,因为数据库正在使用中

我试过了

USE [master]
ALTER DATABASE myDB
SET SINGLE_USER WITH ROLLBACK IMMEDIATE;

并运行查询

USE [master] RESTORE DATABASE  myDB
   FROM DISK = 'C:\MyDatabase.bak' WITH  FILE = 1,NOUNLOAD,STATS = 10

我也从恢复向导尝试了相同的结果.

无法获取独占访问权限,因为数据库正在使用中.

解决方法

方法1
declare @sql as varchar(20),@spid as int

    select @spid = min(spid)  from master..sysprocesses  where dbid = db_id('<database_name>')  and spid != @@spid    

    while (@spid is not null)

    begin

    print 'Killing process ' + cast(@spid as varchar) + ' ...'

    set @sql = 'kill ' + cast(@spid as varchar)

exec (@sql)

select 

    @spid = min(spid)  

from 

    master..sysprocesses  

where 

    dbid = db_id('<database_name>') 

    and spid != @@spid
 end 

 print 'Process completed...'

方法2

alter database database_name
  set offline with rollback immediate
  alter database database_name
  set online

猜你在找的MsSQL相关文章