SQL 2005 因为数据库正在使用,无法获得对数据库的独占访问权
引起原因:我们在还原数据库的时候,还有其它用户在使用数据库,所以会报错。
解决方法:断开其它用户与数据的连接
共有两种方法:
1、设置数据库在单用户模式下工作
设置方法:在需要还原的数据库上右击,在右键菜单命令上选择“属性”-》“选项”---》“状态”---》“限制访问”----》“Single”。这是SQL 2005的菜单命令,其它版本不一定相同
2、用SQL语句
1、首先定位到master 数据库
2、运行如下语句
如以下杀死正在使用'jcjq'数据库的线程:
use master
declare @dbname varchar ( 20)
set @dbname = 'v091222'
declare @sql nvarchar ( 500)
declare @spid int --SPID 值是当用户进行连接时指派给该连接的一个唯一的整数
set @sql = 'declare getspid cursor for
select spid from sysprocesses where dbid=db_id(''' + @dbname + ''')'
exec ( @sql )
open getspid
fetch next from getspid into @spid
while @@fetch_status <>- 1-- 如果 FETCH 语句没有执行失败或此行不在结果集中。
begin
exec ( 'kill ' + @spid ) -- 终止正常连接
fetch next from getspid into @spid
end
close getspid
deallocate getspid