以前開発したシステムのデータベースをユーザ先からお預かりし、
社内テスト用に復元させようとしたが、ユーザ先のSQLServerのバージョンが「2012」と新しく
社内のバージョン2008への復元ができなかった・・・・

通常は、ManagementStudioでデータベースの所で右クリック→ データベースの復元を行うのだが、
新しいバージョンのものを復元しようとすると失敗する。

そこで、自分のデスクトップPCに2012Expressをインストールして、
1ステップ追加してみることに・・・

・元データがSQLServer2012のバックアップ
・先がSQLServer2008
・自分のデスクトップが2012Express

まず、預かった2012のバックアップデータを
ManagementStudio2012で自分のPCへふつうに復元。
ManagementStudioのオブジェクトエクスプローラで先のデータベースへ接続すると
2つのデータベースのバージョンが()で表示されます。

SQLServer10.50.1600とSQLServer11.0.5058

次に、元となるふつうに復元したデータベースの所で、右クリックし、「タスク」→「データのエクスポート」を選択。
ポップアップにてウィザードが立ち上がるので、
「次へ」

データソースの選択
・データソース:SQLServerNativeClient11.0
・サーバ名:Expressのサーバ
・認証:接続の認証なので、Windows認証かSQLServer認証を選択
・データベース:選択されたデータベースがすでに設定されいる(違ったら、ここで再度選択)
「次へ」

変換先の選択
・変換先:SQLServerNativeClient10.0(先のデータベースが2008なので)
・サーバ名:変換先のサーバ名
・認証:そのサーバへの認証方法を選択
・データベース:新規作成ボタンをクリック→「データベース作成」ポップアップにて、作成。
「次へ」

テーブルのコピーまたはクエリーの指定
・「1つ以上のテーブルまたはビューからデータをコピーする」を選択
「次へ」

コピー元のテーブルおよびビューの選択
・チェックボックスにて変換するテーブルとビューを選択します。
「次へ」

パッケージの実行
・「すぐに実行する」のチェックボックスで選択。(チェックをはずすと「戻る」ボタンしか選択できない)
「次へ」

エクスポートが実行されるので、エラーが無いかチェックし問題なければ、
2008への復元が完了です!!!

システムでデータベースにアクセスし、問題なければ以上で復元OK!

他のデータベース製品よりもツールが充実しているのはいいが、
バックアップ→リストアはバージョンに依存しないようにしてほしいものです。

By nagwp

3 thoughts on “SQLServerのデータ復元(2012→2008)について”
  1. エクスポートの場合、ビューはテーブルに出力され、関数はエクスポートされないので、
    新規に作成しなければだめです。

  2. ご訪問ありがとうございます。
    テーブルによっては、いくつかパターンがあるかもしれませんので、
    もしちゃんとできないテーブル等ありましたら、
    ご連絡いただけるとありがたいです。

    こちらでも試してみます。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です