有关获取SqlServer数据库的独占访问权限以进行恢复的问题

时间:2010-02-04 09:10:06

标签: sql-server sql-server-2005

这是我的问题:我有一个使用sql server express 2005的应用程序,它安装在默认的sql server express实例下,SQLExpress 在此实例下,还有其他几个数据库,由其他应用程序(基于Web或桌面)使用 如果我需要恢复数据库,有时它可以工作,但有时会失败,告诉我需要对数据库的独占访问才能执行此操作。我理解这一点,当然当我尝试恢复时,使用数据库的应用程序已关闭,但可能它只是在几分钟之前关闭,所以sql server仍然保持一些连接打开,用于缓存目的。 在这种情况下,我有两个选择:

  • 重启sql server实例 - 从用户点来看这是最容易做到的 视图(右键单击服务器 企业管理器和 选择重启(但这是最糟糕的 停止所有数据库)

  • 分离我的数据库,再次附加然后恢复(这是因为分离 可以选择关闭所有 连接)。但这更难 因为我必须这样做(需要更多时间) 浏览文件夹以查找 db所在的位置(I 将所有数据库保存在自定义位置, 不在默认的sql server数据库下 位置)

我的问题是,还有其他更简单的方法吗?

由于

1 个答案:

答案 0 :(得分:2)

在SQL Server Management Studio中(不确定Express,我会检查),您可以使用Management下的Activity Monitor找到仍对数据库开放的任何连接。右键单击该连接,然后选择“终止”

这样您就可以清除任何未完成的连接。

[编辑]我检查了一个SQL Server Express,它还包含Activity Monitor。 或者,您可以使用脚本关闭所有连接。有关示例,请参阅here