2013-07-29 53 views
8

私はbakファイル(SQL Server Express 2005 mdfファイルのバックアップデータベースファイル)を取得しています。このbakファイルから元のMDFファイルを取得できますか?私はVisual Studio 2012を使用しています、それは管理スタジオを持つ必要がありますか?私は、SQL Server Express管理スタジオ2008を含む別のシステムの空のデータベースにこのbakファイルを復元しようとしましたが、データベースが一致しない、何がうまくいかないと言われていますか?元のMDFファイルをbakファイルから復元する

答えて

5

空のデータベースを作成した場合、これをバックアップに上書きするには、WITH REPLACEパラメーターを指定する必要があります。

また、ファイルを正しい場所に配置するには、MOVEパラメーターを指定する必要があります。

復元を行うときに非常に簡単にGUIでこれらのオプションを見つけることができる必要があり、あるいはあなたがここに参照を使用してスクリプトを実行することができます

How to: Restore a Database to a New Location and Name (Transact-SQL)

+0

ありがとうございますが、このアクションをコードで実行するにはどうすればよいですか?あなたのリンクに提供されているコードサンプルはどこで実行すればよいですか?私はSQLCommandオブジェクトを作成し、それらのスクリプトを実行する必要がありますか? –

+0

これを行うこともできますし、単にSQL管理スタジオ – steoleary

11

復元することに注意してくださいデータベースバックアップファイルは元のMDF(およびLDF)ファイルを提供しません。元のMDFファイルを取得する唯一の方法は、コピーすることです Visual Studioで提案されているT-SQLを実行するには、こちらを参照してください:How to: Run SQL Scripts in Solution Explorer。また、SQL Server Management Studioで行うこともできます。

作成したブランクデータベースは、バックアップを同期しない限り、あまり役に立ちません。しかし、そのためにはサードパーティのツールが必要です

最初に、以下を実行してバックアップ内の論理ファイル名を確認してください。この例では、Eに保存されているTestFull.bakという名前のバックアップのためにある:\テスト

RESTORE FILELISTONLY 
FROM DISK = 'E:\Test\TestFull.bak' 
GO 

enter image description here

論理名は、次のスクリプトで使用されるべきです。また、使用するパスと名前を更新してください

RESTORE DATABASE YourDB 
FROM DISK = 'E:\Test\TestFull.bak' 
WITH MOVE 'test1' TO 'E:\test\TestMDFFile.mdf', 
MOVE 'test1_log' TO 'E:\test\TestLDFFile.ldf' 
+0

でコマンドを実行することもできます。Milena、私はManagement Studioを使用してMDFファイルを持っていますが、実際にはこの操作をコードで実行する必要があります。 bakファイルからデータを読み込むので、コードを使用してbakファイルからMDFを復元し、MDFに接続してデータベースを読み込むことができるはずです。C#コードでこの操作を実行するにはどうすればよいですか?サンプルはありますか? –

+0

@Ali_dotNet –

+0

OK、別の言語を使用しますか? –

関連する問題