SQL Serverでサーバ間でテーブルを丸ごとコピーする、もっとも簡単な方法とは?

SQL Serverをレンタルサーバで使っているが、サービスの切り替えでサーバ間でデータの移行をしなければならないとのこと。こういうのって気が重いな、と思いながらも、やらなければしようがない。

データを移行する方法は主に3つ。もっとも簡単なのは、SQL Serverに付いてくる「データのインポートおよびエクスポート」を使う方法かと。

data_import_export_01

3つの方法とは、以下。

  • bcpユーティリティを使う。
  • BULK INSERTを使う。
  • 「データのインポートおよびエクスポート」を使う。

bcpユーティリティとは、コマンドラインで使うツール。コマンドラインで起動して、テーブルやクエリの内容をテキストファイル化したり、その逆を行う。

BULK INSERTも、コマンドラインで使うツール。ただし、その名のとおりINSERT(データの挿入)しかできない。

最後の「データのインポートおよびエクスポート」は、GUIツール。データソース(入力)と変換先(出力)を細かく指定でき、私感ではこれがもっとも使いやすいと思う。

今回、移行元と移行先の2つのSQL Serverが存在するので、それぞれを入力と出力に指定して、ダイレクトにすべてのテーブルをコピーできる。これなら楽だ。

以下は、コピーの手順。別に難しいことはないので、いらない人はここで終わり。なお、重要なことだが、各テーブルのIDフィールドのように自動でユニークなナンバーが振られるものでも、そのままコピーされる。なので、テーブル間でIDを参照しているような場合でも、対応が滅茶苦茶になってしまうことはないので、ご安心を。

[スタート]メニューから「データのインポートおよびエクスポート」を起動。冒頭の画面。

ここで、データソースを移行元のサーバに指定。

data_import_export_02

変換先を、移行先のサーバに指定。

data_import_export_03

データそのものをコピーする。

data_import_export_04

コピーするテーブルを選ぶ。全部でもいい。

data_import_export_05

すぐに実行しよう。

data_import_export_06

作業内容を確認する。

data_import_export_07

いよいよ始まる。あれよこれよという間に、終わる。

data_import_export_08

別途、SQL Server Management Studioを立ち上げて、移行先のサーバに接続、コピーしたテーブルが存在していることを確認。

ssms_01

以上、移行手順。

コメント