SQL Serverで、DBの中身を他のDBにコピーする

はじめに

普通に考えると、DBをバックアップ・レストアすればOKに思えますが、

SQL Serverのバックアップは、データファイルの場所を含めて復元しようと

してしまう為、この用途では都合がよくありません。

普通に考えると

エクスポートすれば出来そうですが、テキストファイルにエクスポートする際は

1テーブルずつしかデータを出力できません。これは面倒です

ご注意

この方法はデータが大量の場合、適さない可能性が高いです。

#割と遅い、重い処理に思えます

手順

SQL Server Management Studioから、データベースを右クリックして

スクリプトの生成を選択します。

対象を聞かれるので、「特定のデータベース オブジェクトの選択」を選んで

必要なテーブルだけチェックを入れて、「次へ」

ここが重要です

● ファイルに保存 の右に、詳細設定ボタンがあります。

これを押すと、色々と項目がでてくるのですが、その中に、

「スクリプトを作成するデータの種類」という項目があり、初期値はスキーマのみ

となっています。これを、「スキーマとデータ」に変更します。

あとは、次へを押してスクリプトを出力させればOKです。

CREATE TABLE文と、INSERT文がずらずらとSQLファイルに書かれます。

これを、取り込みたいDB上で実行すればOKです。

SQLファイルはタダのテキストなので、要らない部分は消してしまえば良いし、

その他いろいろと取り扱いが楽なのでオススメです。

環境など

SQL Server 2012 Express localdb

SQL Server Management Studio 2012