C# でアプリケーションを作成しています。要件として、あるローカル ドライブから別のローカル ドライブにデータベースを移動する必要があります。
提案されたフォーラムを読んだ後、データベースを移動する最良の方法は次のとおりです。
- データベースを切り離す
- データベースを移動する
- データベースを接続する
次のコードを使用して、データベースを正常にデタッチできました。
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' にアクセスできません
何が間違っている可能性がありますか?