这是我的问题:我有一个使用sql server express 2005的应用程序,它安装在默认的sql server express实例下,SQLExpress 在此实例下,还有其他几个数据库,由其他应用程序(基于Web或桌面)使用 如果我需要恢复数据库,有时它可以工作,但有时会失败,告诉我需要对数据库的独占访问才能执行此操作。我理解这一点,当然当我尝试恢复时,使用数据库的应用程序已关闭,但可能它只是在几分钟之前关闭,所以sql server仍然保持一些连接打开,用于缓存目的。 在这种情况下,我有两个选择:
重启sql server实例 - 从用户点来看这是最容易做到的 视图(右键单击服务器 企业管理器和 选择重启(但这是最糟糕的 停止所有数据库)
分离我的数据库,再次附加然后恢复(这是因为分离 可以选择关闭所有 连接)。但这更难 因为我必须这样做(需要更多时间) 浏览文件夹以查找 db所在的位置(I 将所有数据库保存在自定义位置, 不在默认的sql server数据库下 位置)
我的问题是,还有其他更简单的方法吗?
由于
答案 0 :(得分:2)
在SQL Server Management Studio中(不确定Express,我会检查),您可以使用Management下的Activity Monitor找到仍对数据库开放的任何连接。右键单击该连接,然后选择“终止”
这样您就可以清除任何未完成的连接。
[编辑]我检查了一个SQL Server Express,它还包含Activity Monitor。 或者,您可以使用脚本关闭所有连接。有关示例,请参阅here。