📑

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

2021/08/11に公開

はじめに

普通に考えると、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

Discussion