新しい名前でデータベースのコピーを作成する必要があります。私のasp.net mvc
プロジェクトでsmo
は、データベースのバックアップを作成するために使用し、復元を試みます。私はこれが好きです:http://www.mssqltips.com/sqlservertip/1849/backup-and-restore-sql-server-databases-programmatically-with-smo/。
しかし、例外があります:
ファイル 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\LocalClientTrakDB.mdf' は上書きできません。データベース「LocalClientTrakDB」で使用されています。
ファイル 'LocalClientTrakDB' を 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\LocalClientTrakDB.mdf' に復元できません。WITH MOVE を使用して、ファイルの有効な場所を特定します。
ファイル 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\LocalClientTrakDB_log.ldf' は上書きできません。データベース「LocalClientTrakDB」で使用されています。
ファイル 'LocalClientTrakDB_log' を 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\LocalClientTrakDB_log.ldf' に復元できません。
RESTORE ステートメントの計画中に問題が特定されました。前のメッセージに詳細が記載されています。
RESTORE DATABASE が異常終了しています。
データベースを復元する私のコード:
static void DatabaseRestore(Server myServer, Database myDatabase)
{
string newdbfilename = myDatabase.Name + "New";
Restore restoreDB = new Restore();
restoreDB.Database = newdbfilename;
restoreDB.Action = RestoreActionType.Database;
restoreDB.Devices.AddDevice(@"C:\temp\TestFullDB.bak", DeviceType.File);
restoreDB.ReplaceDatabase = true;
restoreDB.NoRecovery = false;
restoreDB.SqlRestore(myServer);
}
何か考えはありますか?