SQL Serverをレンタルサーバで使っているが、サービスの切り替えでサーバ間でデータの移行をしなければならないとのこと。こういうのって気が重いな、と思いながらも、やらなければしようがない。
データを移行する方法は主に3つ。もっとも簡単なのは、SQL Serverに付いてくる「データのインポートおよびエクスポート」を使う方法かと。
3つの方法とは、以下。
- bcpユーティリティを使う。
- BULK INSERTを使う。
- 「データのインポートおよびエクスポート」を使う。
bcpユーティリティとは、コマンドラインで使うツール。コマンドラインで起動して、テーブルやクエリの内容をテキストファイル化したり、その逆を行う。
BULK INSERTも、コマンドラインで使うツール。ただし、その名のとおりINSERT(データの挿入)しかできない。
最後の「データのインポートおよびエクスポート」は、GUIツール。データソース(入力)と変換先(出力)を細かく指定でき、私感ではこれがもっとも使いやすいと思う。
今回、移行元と移行先の2つのSQL Serverが存在するので、それぞれを入力と出力に指定して、ダイレクトにすべてのテーブルをコピーできる。これなら楽だ。
以下は、コピーの手順。別に難しいことはないので、いらない人はここで終わり。なお、重要なことだが、各テーブルのIDフィールドのように自動でユニークなナンバーが振られるものでも、そのままコピーされる。なので、テーブル間でIDを参照しているような場合でも、対応が滅茶苦茶になってしまうことはないので、ご安心を。
[スタート]メニューから「データのインポートおよびエクスポート」を起動。冒頭の画面。
ここで、データソースを移行元のサーバに指定。
変換先を、移行先のサーバに指定。
データそのものをコピーする。
コピーするテーブルを選ぶ。全部でもいい。
すぐに実行しよう。
作業内容を確認する。
いよいよ始まる。あれよこれよという間に、終わる。
別途、SQL Server Management Studioを立ち上げて、移行先のサーバに接続、コピーしたテーブルが存在していることを確認。
以上、移行手順。