より高いバージョンのSQL Serverデータベースのバックアップファイルをより低いバージョンのSQL Serverに復元するにはどうすればよいですか?, SQL Server 2008 R2(10.50.1600)を使用して、このサーバーバージョンからバックアップファイルを作成しました。これをライブサーバーのSQL Server 2008(10.00.1600)に復元します。 その時、私はSQL Server 2008で復元したときにエラーが発生します。つまり、 Restore Failedためです。, バージョン10.50.1600を実行しているサーバーでデータベースがバックアップされました。 このバージョンは、バージョン10.00.1600を実行しているこのサーバーと互換性がありません。, 「スクリプトのデータの種類」で「タスク」 - >「スクリプトの生成」を選択します。「Shema and data」を選択し、下のバージョンでこのスクリプトを実行してみてください, バックアップ/復元 - ターゲットが以前のMS SQLバージョンの場合は動作しません。, データベースのコピー - ターゲットがSQL Server Expressの場合は動作しません。 「ターゲットサーバーはSQL Server 2005以降のExpressインスタンスにできません。」, スクリプトの生成 - タスク - > スクリプトの生成 。 [ スクリプトオプションの設定] - > [ 詳細 設定 ]ページで目的のSQL Serverバージョンを設定してください。 スキーマ、データ、またはその両方をコピーするかどうかを選択することもできます。 生成されたスクリプトでは、非エクスプレスからエクスプレスへまたはその逆に移動する場合は、mdf / ldfファイルのDATAフォルダを変更する必要があることに注意してください。, Microsoft SQL Serverデータベース公開サービス - SQL Server 2005以上が付属していると思います。 hereから最新バージョンをダウンロードしてhere 。 前提条件: sqlncli.msi / sqlncli_x64.msi / sqlncli_ia64.msi 、 SQLServer2005_XMO.msi / SQLServer2005_XMO_x64.msi / SQLServer2005_XMO_ia64.msi ( hereダウンロード)。, サードパーティのツール :ジョブを完了させる最も簡単な方法は、より低いバージョンの空のデータベースを作成し、サードパーティのツールを使用してバックアップを読み込んで、新しく作成したデータベースをバックアップと同期させることです。, 赤いゲートは最も人気のあるものの1つですが、 ApexSQL Diff 、 ApexSQL Data Diff 、 Adept SQL 、 Idera ...のような多くのものがあります。 これらはすべてプレミアムツールですが、トライアルモードで実行することができます;), スクリプトの生成 :すでに述べたように、SSMSを使用して構造とデータを常にスクリプト化できますが、実行順序を考慮する必要があります。 デフォルトでは、オブジェクトスクリプトは正しく注文されていないため、依存関係を処理する必要があります。 データベースが大きくてオブジェクトがたくさんある場合、これは問題になる可能性があります。, インポートとエクスポートウィザード :これは理想的なソリューションではありません。すべてのオブジェクトを復元するのではなく、データテーブルだけを復元するためですが、必要なときに素早く厄介な修正を行うことができます。, これはきわめて簡単なことではありませんが、これはSQL 2008 R2インストールにこのオプションをインストールした方法です。, 1)SQL Server 2008 R2の "タスク"でデータベースを右クリックします..ウィザードで "スクリプトを生成"を選択し、最初のステップでデータベースとオブジェクト全体を選択します。 "スクリプトのオプションを設定する"ステップでは、 "高度な"ボタンが表示されますので、これを選択し、 "Script for Server Version" = SQL Server 2008 "R2バージョンではないことを確認してください。それだけでは、すべての主キー、constriants、およびストアドプロシージャのような他のオブジェクトを持って来ません。, 2)新しいインストールまたはデータベースインスタンスSQL ExpressまたはSQL Server 2008で生成されたSQLスクリプトをクエリウィンドウを使用して実行するか、保存された.sqlスクリプトを開いて実行し、新しいデータベースを表示する必要があります。, 3)新しいデータベースを右クリックし、「タスク」を選択します。「データのインポート」.. R2データベースとしてソースを選択し、新しいデータベースとしてデスティネーションを選択します。 "1つまたは複数のテーブルまたはビューからデータをコピーする"を選択し、すべてのテーブルを選択して次のステップを選択してパッケージを実行すると、古いバージョンのすべてを持つ必要があります。 これは、2005年版にも戻るためには有効です。 これが誰かを助けることを願っています。, ソースデータベース> [タスク]> [データベースのコピー]を右クリックして検索します。, データベースをSQL Serverインスタンスの下位バージョンにコピーできます。 これは、SQL Server 2008 R2(SP1) - 10.50.2789.0からMicrosoft SQL Server 2008(SP2) - 10.0.3798.0, 上位バージョンで作成したデータベースを下位バージョンに復元することはできません。 唯一の方法は、すべてのオブジェクト用のスクリプトを作成し、そのスクリプトを使用してデータベースを生成することです。, [ スキーマとデータ]を選択します。 両方をバックアップスクリプトファイルに取り込む場合は [ スキーマのみ] - スキーマのみ が必要な場合のみ選択します。, BCP INコマンド: - Invoicescopy1のテーブル構造を作成します。, 「ターゲットサーバーはSQL Server 2005以降のExpressインスタンスにできません。」. Sql Server では、"バックアップ"と"復元"の機能は古いバージョン→新しいバージョンは成功するが、逆は正しく動作しない。, データベースの復旧モデルにかかわらず、SQL Server バックアップは、 Sql Server では、"バックアップ"と"復元"の機能は古いバージョン→新しいバージョンは成功するが、逆は正しく動作しない。 データベースの復旧モデルにかかわらず、SQL Server バックアップは、 バックアップを作成したバージョンより古いバージョンの SQL Server では復元できません。 ョンに一貫した使用環境を提供するために、復元先のサーバー インスタンスで、ログインやジョブなどのデータベースのメタデータの一部またはすべてを作成し直す必要がある場合があります。. タスク → 復元 → データベース を選択する。, データベースの復元ウィンドウが開かれるので、バックアップデバイスを選択して、OKをクリックする。, SQL Serverのバージョンが異なることが原因。上位互換がなく、新しいバージョンのバックアップを古いバージョンでリストアすることはできない。バックアップを作った開発環境のSQL Serverと、リストアする実行環境のSQL Serverのバージョンを調べてみる。, SQL Server Management Studioのヘルプ → バージョン情報から表示されるバージョンは、Management Studioのバージョンであって、SQL Serverのバージョンではない。SQL Serverのバージョンを調べるには、Management Studioにて以下のコマンドを入力するとよい。, このような場合は直接復元ができない。SQL Serverのバージョンを最新に統一すれば問題ないのだが、実行環境を変更できない事情があるため、該当の2014をバージョンアップするわけにはいかない。, 直接復元ができないので、テーブルごとに作成スクリプトを保存し、それをリストア先で実行することにした。