2012-06-11 37 views
10

我正在使用SQL Server 2005,我遇到问题恢复我的数据库我试图恢复我的数据库时收到此消息。无法恢复数据库,数据库正在使用会话

Restore failed. (Microsoft.SqlServer.Express.Smo)

"System.Data.SqlClient.SqlError: RESTORE cannot process database 'AMOD' because it is in use by this session. It is recommended that the master database be used when performing this operation. (Microsoft.SqlServer.Express.Smo)"

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

回答

32

您需要将所有用户踢出去,并确保您不在该数据库中。假设您在Management Studio中,您需要以这种方式将您的上下文更改为不同的数据库(或将数据库下拉菜单切换到另一个数据库),这也将激发其他任何用户(可能是您 - 对象资源管理器,对象资源管理器详细信息,其他查询窗口,等等都可能是无意中阻止通过保持你的数据库的连接)的恢复:

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

一旦你完成恢复和数据库是可以继续使用:

ALTER DATABASE AMOD SET MULTI_USER; 
+3

我为另一个用户设置了这个设置,另外我还需要去安全→登录→右键单击用户→属性,然后设置Def数据库掌握,然后让他们注销并返回。 – bmaupin

+0

@bmaupin暂时踢他们也应该解决了。 –

+2

我想我的意思是我设置了另一个用户来恢复数据库,但每次他们登录进行恢复时,他们想要恢复的数据库都被设置为默认值,因此他们会连接到它。当然,我不是专家,但改变默认数据库似乎修复它。无论如何,很好的答案! – bmaupin