12

我正在使用 SQL Server 2005,但在恢复数据库时遇到问题我在尝试恢复数据库时收到此消息。

还原失败。(Microsoft.SqlServer.Express.Smo)

“System.Data.SqlClient.SqlError:RESTORE 无法处理数据库'AMOD',因为它正在被此会话使用。建议在执行此操作时使用主数据库。(Microsoft.SqlServer.Express.Smo)”

我重新启动了程序,我没有打开数据库中包含的任何表,但我仍然收到此消息。我是 SQL Server 新手,这是我第一次进行还原。我感谢提供的任何帮助。

4

2 回答 2

38

您需要将所有用户踢出,并确保您不在该数据库中。假设您在 Management Studio 中,您需要以这种方式将您的上下文更改为不同的数据库(或将数据库下拉列表切换到不同的数据库),这也会踢出任何其他用户(可能是您 - 对象资源管理器,对象资源管理器详细信息、其他查询窗口等都可能通过维护与数据库的连接来无意中阻止还原):

USE master;
GO
ALTER DATABASE AMOD SET SINGLE_USER WITH ROLLBACK IMMEDIATE;

完成还原并且数据库可以再次使用后:

ALTER DATABASE AMOD SET MULTI_USER;
于 2012-06-11T14:34:31.283 回答
0

使用活动管理器来终止脚本中的资源依赖关系,或者简单地终止 SPID。

于 2018-03-26T10:30:55.707 回答