2011-09-16 33 views
2

ライブのSQL ServerデータベースにMDFファイル(ライブインスタンスのバックアップとして生成)から単一のレコードを復元するのが最善の方法は何でしょうか。SQL Server 2008のMDFファイルからレコードを復元する最も速い方法

私はファイルをデータベースに接続するプロセスについて知っていますが、完全にリストアすることについてはかなり読んでいますが、テーブルの1つから1つのレコードを選択してライブインスタンスの同じテーブルに挿入する方法?

私はいつもselect文の結果の行に基づいて自分で最初から新しいレコードを作成することができましたが、そのような簡単な作業にはよりスマートでクリーンなアプローチが必要です。

お返事をお待ちしています、ありがとうございました。

乾杯。

答えて

1

ライブサーバーにどのような柔軟性があるかによって、ライブまたは別のリンクサーバー上の別の名前でバックアップデータベースを添付してから、対応するテーブルに直接挿入するレコードを選択するだけで済みますライブデータベースに保存されます。

実行可能な実行可能性は、主キーに完全に依存します。自動生成されたID列の場合は、これを選択すると異なるプライマリ・キーが与えられ、追加したいリンク・レコードに望ましくない結果が生じることがあります。新しいプライマリ・キーを考慮する必要があります。クエリの

insert into originaldb.dbo.Persons 
select * from backupdb.dbo.Persons where PersonId = '654G' 

originaldb.dbo.Personsはあなたに選択したい元のテーブルです。

backupdb.dbo.Personsは復元されたバックアップテーブルです。

行全体を選択していない場合は、このクエリを少し変更する必要がありますが、それはその要点です。

+0

ありがとう、それは私が知りたかったものです。幸いにも、これは非常に単純なテーブル構造なので、この特定のレコードのIDは、挿入時に自動生成されたときに他のレコードによって参照されません。そのような声明はどのように見えるでしょうか?古いIDが選択されておらず、単純にSQL Serverで新しいIDを生成してから、バックアップテーブルから他の列を挿入するだけの方が理想的です。前もって感謝します! –

+1

@mikelc - 簡単な例を含めるために私の元の答えを変更しました。 – hermiod

2

単純にMDFファイルからレコードを読み取ることはできません。レコードを添付するか、データベースに復元する必要があります。

2

ネイティブにすることはできません。ただし、Red GateにはVirtual Restoreという製品があり、バックアップからデータベースをマウントできます。

2

これは現在または今後の予定ですか?後者の場合、データベーススナップショットを利用できます。

関連する問題