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