Visual Studio 2012 でプロジェクトを作成しました。このプロジェクトでは、1 つのデータベースを使用して、ファイルを呼び出します。
db.mdf、db_log.ldf、db_db_0.ldf (これがどこから来たのかわからない)
私がやろうとしているのは、.ldf ファイルのサイズが小さいままであることを確認することです。データベースのバックアップを作成し (.mdf を想定しています)、その時点から .ldf ファイルを再作成するように言われました。したがって、これらの手順を実行する前に発生したトランザクションはなくなり、.ldf ファイルは小さくなり、管理しやすくなります。
私が試したこと:
string detachQuery = String.Format("sp_detach_db @dbname='{0}'", _connection.Database);
using (var cmd = new SqlCommand(detachQuery, _connection))
{
try
{
cmd.ExecuteNonQuery();
}
catch (Exception e) { }
}
ここでのアイデアは、データベースをバックアップした後に .ldf ファイルからデータベースを切り離し、それを新しい .ldf ファイルに再接続することですが、新しい .ldf ファイルを作成する方法はわかりません。これに関する問題は、次の例外が発生することです。
"Cannot detach the database because it is currently in use."
私の質問は、C# では、これはどのように行われるのでしょうか? 私の 2 番目の質問は、より管理しやすいログ ファイルの望ましい効果を達成するためのより良い方法はありますか?