SQL Server 2012 でデータベースを作成し、それを SQL Server 2008 に渡す方法はありますか?
4 に答える
2012年のデータベースをバックアップして2008年に復元するのと同じように?
いいえ、それはできません
方法も、方法も、トリックも、ハックも、回避策もありません-それはできません。
.sql
新しい SQL Server バージョンから古いバージョンに移動するには、構造とデータのスクリプトを使用する必要があります。SQL Server のバックアップ ファイル ( *.bak
) と実際のデータベース ファイル ( *.mdf
、*.ndf
) には下位互換性がありません。
誤解を解くために:互換性レベルを設定しても、利用可能な機能 (データ型など) が制限されるだけですが、バックアップやデータ ファイルが古いバージョンと互換性を持つことはありません。*.bak
*.mdf
データベースを 2012 から 2008 R2 に移行しました。
(これには、オンラインである必要があり、新しいデータベースにアクセスする権限が設定されている必要があります。2012 年のデータベースを使用して C# アプリケーションを作成したオフィス環境でこれを行いましたが、それが実行されていたデータベースは 2008 のものでした。あなたはこれをローカルで行うことができたと思います.2008年からのデータを.bakファイルにバックアップすると、以下を実行できますが、私はそれをテストしていません)
テーブルの構造を SQL としてエクスポートしました。
-> Right clicking the database
-> Tasks
-> Generate scripts
-> Choose Objects (Script entire database and all database objects)
-> Save to New Query Window (Click Advanced and under "Script for server version" choose your version)
-> Click Next and Next and it should generate SQL to new window.
-> I removed everything above "GO, ALTER DATABASE"
-> Create the new database on the 2008 Server using the same name and run the above SQL to make the tables.
テーブル データを実行するには:
-> In the 2012 database right click the database and click tasks
-> Export data
-> Choose the source
-> Next
-> Choose the destination
-> Copy data from one or more tables
-> Next
-> Select the tables
-> Next
-> Run Immediately
うまくいけば、これがうまくいくか、理解するのに時間がかかったので、他の誰かを助けてくれます。
原則としてNo. 互換性モデル 100 (SQL 2008 / 2008R2) を指定できますが、SQL2008 サーバーで 2012 から (バックアップ/復元) も (デタッチ/アタッチ) もできません。
スキーマのみを移動する必要がある場合、私が知っている唯一の回避策は、スキーマを生成してから SQL2008 でデータベースを作成することです。データを移動する必要がある場合は、さらに多くの作業が必要になるため、次のようなツールを試すことができますSSMS tools | Generate Insert Statements