2008サーバーにコピーしたいSQL Sever 2012インスタンスにデータベースがあります。2008サーバーは、2012サーバーによって作成されたバックアップを復元できません(試しました)。
2012年には、2008互換のバックアップを作成するオプションが見つかりません。何か不足していますか?
スキーマとデータをバージョンに依存しない形式にエクスポートして、2008年にインポートできる簡単な方法はありますか?
データベースは2012固有の機能を使用しません。テーブル、データ、ストアドプロシージャが含まれています。
ここに私が今まで試したものがあります
2012サーバーで[タスク] → [ スクリプトの生成]を試してみたところ、スキーマ(ストアドプロシージャを含む)をSQLスクリプトとして生成できました。ただし、これにはデータは含まれていません。
2008マシンでそのスキーマを作成した後、2012マシンで「データのエクスポート」ウィザードを開くことができ、2012をソースマシンとして、2008をターゲットマシンとして設定した後、テーブルのリストが表示されました。コピーできました。すべてのテーブル(300以上)を選択し、ウィザードをクリックしました。残念ながら、スクリプトの生成に何年も費やし、「読み取り専用列 'FOO_ID'への挿入に失敗しました」などのエラーで失敗します。
また、「2000以降から2005以降に」コピーできると主張している「データベースコピーウィザード」も試しました。次の2つのモードがあります。
エラーで失敗した「切り離して接続」:
Message: Index was outside the bounds of the array. StackTrace: at Microsoft.SqlServer.Management.Smo.PropertyBag.SetValue(Int32 index, Object value) ... at Microsoft.SqlServer.Management.Smo.DataFile.get_FileName()
エラーで失敗したSQL管理オブジェクトメソッド
IsFileStreamプロパティを読み取ることができません。このプロパティは、SQL Server 7.0では使用できません。」