web-dev-qa-db-ja.com

SQL Server 2012でSQL Server 2014のバックアップを復元できますか?

SQL Server 2008でSQL Server 2012のバックアップを(少なくとも簡単に)復元できないことは知っています。しかし、SQL Server 2014からSQL Server 2012へのバックアップはどのように機能しますか?

データベースレベルには、互換モードを他のSQL Serverバージョンに調整するプロパティがあります。

これはどのように役立ちますか? 2014年以降の機能のみが禁止されますか?

正直なところ、私はすでにバックアップを復元しようとしましたが、2012年はデータファイルを認識しなかったため、ok Buttonをクリックして復元手順を開始できませんでした。

重要なオプションを見逃しましたか?

55
RayofCommand

あなたはできませんこれを行うことはできません-新しいバージョンからデータベースをアタッチ/デタッチまたはバックアップ/復元することはできませんSQL Serverの旧バージョンまで-内部ファイル構造があまりにも異なるため、後方互換性をサポートできません。これはSQL Server 2014でもまだ当てはまります-cannot2014バックアップを別の2014ボックス(または何かnewer)。

この問題を回避するには

  • すべてのマシンで同じバージョンのSQL Serverを使用する-インスタンス間でデータベースを簡単にバックアップ/復元できる

  • それ以外の場合は、SQL Server Management Studio(Tasks > Generate Scripts)またはサードパーティツールを使用して、構造(テーブル、ビュー、ストアドプロシージャなど)とコンテンツ(テーブルに含まれる実際のデータ)の両方のデータベーススクリプトを作成できます。

  • または、Red-Gateの SQL CompareSQL Data Compare などのサードパーティツールを使用して、ソースとターゲットの「差分」を行い、それらの差分から更新スクリプトを生成できます。 、そしてそれらのスクリプトをターゲットプラットフォームで実行します。これは、異なるSQL Serverバージョンで機能します。

互換モード設定は、利用可能なT-SQL機能を制御するだけです。これは、他のサーバーでは利用できない新機能を誤って使用することを防ぐのに役立ちます。ただし、NOT.mdfファイルの内部ファイル形式を変更します-これはNOTその特定の問題の解決策-古いインスタンスでSQL Serverの新しいバージョンからバックアップを復元する解決策はありません。

71
marc_s

確かに可能です...ソースオプションでWizardエクスポートを使用SQL SERVER NATIVE CLIENT 11を使用し、後でソースサーバーex.192.168.100.65\SQLEXPRESS次のステップで新しいターゲットサーバーex.192.168.100.65\SQL2014を選択します

必ず正しいインスタンスを使用し、互いに接続するようにしてください

ストアドプロシージャを再コンパイルする必要があることに注意してください

29
Jordan Medina