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

posted @ 2013-06-04 13:35  sonheri  阅读(445)  评论(0编辑  收藏  举报