还原SQL Server 2008数据库失败

通过SQL Server Management Studio还原SQL Server 2008数据库失败时,提示因为数据库正在使用,所以无法获得对数据库的独占访问权。本文介绍这种情况的可能原因和解决方案。

问题现象

通过SQL Server Management Studio还原SQL Server 2008数据库失败时,提示因为数据库正在使用,所以无法获得对数据库的独占访问权

还原数据库失败

可能原因

数据库正在被某些进程调用。

解决方案

  1. 在SQL Server Management Studio的左侧导航栏,左键单击待还原的数据库。

  2. 在菜单栏中,单击新建查询(N)

  3. 在查询窗口中,输入以下命令,单击执行,查询正在调用数据库的进程号。

    use master
    select b.spid from sysdatabases a , sysprocesses b where a.dbid=b.dbid and a.name= '数据库名称'

    例如,数据库名称为aa,执行以下命令:

    use master
    select b.spid from sysdatabases a , sysprocesses b where a.dbid=b.dbid and a.name= 'aa'

    查询到的调用数据库aa的进程号如下图所示。

    还原数据库失败

  4. 在查询窗口中,输入以下命令,停止正在使用数据库的进程,然后单击执行

    kill 调用数据库的进程号
  5. 尝试再次还原数据库。

    数据库还原成功,如下图所示。还原数据库成功

    说明

    如问题仍未解决,请提交工单