C# 复制分离的SQL Server数据库时出错
我正在用C#构建一个应用程序。作为一项要求,我需要将数据库从一个本地驱动器移动到另一个本地驱动器 在阅读了论坛后,有人建议,移动数据库的最佳方式是:C# 复制分离的SQL Server数据库时出错,c#,sql-server,C#,Sql Server,我正在用C#构建一个应用程序。作为一项要求,我需要将数据库从一个本地驱动器移动到另一个本地驱动器 在阅读了论坛后,有人建议,移动数据库的最佳方式是: 分离数据库 移动数据库 附加数据库 我能够使用以下代码成功分离数据库: userConn = new SqlConnection(userdatabase); userConn.Open(); addConn = new SqlConnection(addInfo); addConn.Open(); string UserString =
- 分离数据库
- 移动数据库
- 附加数据库
userConn = new SqlConnection(userdatabase);
userConn.Open();
addConn = new SqlConnection(addInfo);
addConn.Open();
string UserString = "sp_detach_db @DBName, @skipchecks";
SqlCommand cmd = new SqlCommand(UserString, userConn);
cmd.Parameters.AddWithValue("@DBName", userConn.Database);
cmd.Parameters.AddWithValue("@skipchecks", false);
cmd.ExecuteNonQuery();
cmd.Dispose();
cmd = new SqlCommand(UserString, addConn);
cmd.Parameters.AddWithValue("@DBName", addConn.Database);
cmd.Parameters.AddWithValue("@skipchecks", false);
cmd.ExecuteNonQuery();
cmd.Dispose();
这很有效。但是,我无法移动数据库文件。它抛出一个异常:
进程无法访问文件“*.mdf”,因为另一个进程正在使用该文件
你知道会出什么问题吗 实际上,ALTERDATABASE是一种更好的移动方式,而不是分离。Brent Ozar有一篇帖子提到了这一点…“更改数据库以更改文件路径,使其脱机,将文件复制到其新位置,并使其重新联机。它保持日志传送完整”:我会看一看。非常感谢。除此之外,在分离数据库之前,您需要将其置于单用户模式。。。