以前開発したシステムのデータベースをユーザ先からお預かりし、
社内テスト用に復元させようとしたが、ユーザ先の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!
他のデータベース製品よりもツールが充実しているのはいいが、
バックアップ→リストアはバージョンに依存しないようにしてほしいものです。
エクスポートの場合、ビューはテーブルに出力され、関数はエクスポートされないので、
新規に作成しなければだめです。
ちゃんと出来ますか?一応試します。
ご訪問ありがとうございます。
テーブルによっては、いくつかパターンがあるかもしれませんので、
もしちゃんとできないテーブル等ありましたら、
ご連絡いただけるとありがたいです。
こちらでも試してみます。