【发布时间】:2012-12-20 01:04:05
【问题描述】:
可能重复:
Exclusive access could not be obtained because the database is in use
我在项目中使用 C#、.net4 和 SQL Server 2008 R2 并使用此代码恢复数据库:
_comm = new SqlCommand("use master; RESTORE DATABASE [DB1] FROM DISK = @Address WITH RESTRICTED_USER, FILE = 1, NOUNLOAD, REPLACE, STATS = 10; use DB1;", _conn);
_comm.CommandType = System.Data.CommandType.Text;
_comm.Parameters.AddRange(new SqlParameter[]
{
new SqlParameter("@Address", _path)
});
_conn.Open();
_comm.ExecuteNonQuery();
显示如下错误:
无法获得独占访问权限,因为数据库正在使用中。 RESTORE DATABASE 异常终止。 将数据库上下文更改为“主”。 将数据库上下文更改为“DB1”。
【问题讨论】:
-
消息很清楚:
DB1数据库仍在被其他人使用 - 您在 SQL Server Management Studio 中打开了查询窗口,或者其他一些应用程序仍连接到该数据库。您不能在使用数据库时恢复它。 -
另外:您不应该在 C# 中的 SQL 语句中使用
use master- 如果您想在master数据库上执行某些操作 - 您需要有一个适当的连接字符串:server=YourServer;database=master; ...... -
我删除'使用主人;'但是还是有错误
标签: c# sql-server-2008-r2