我在 Visual Studio 2012 中有一个项目,它使用一个数据库和我们将调用的文件
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# 中,这是如何完成的?我的第二个问题是:有没有更好的方法来实现更易于管理的日志文件的预期效果?