回答:
オフセット0x12064の2バイトを調べることにより、データベースのプライマリMDFファイルのバージョンを確認できます。MDFファイルのデータベースバージョンを確認する方法を参照してください。
で.bak
ファイル下位バイトは0xEACあり、より高い0xEADです。
MS SQLのほとんどの内部データベースバージョン番号は、こちらにあります。
RESTORE HEADERONLYを使用します。たとえば
RESTORE HEADERONLY FROM DISK = 'D:\whatever.bak'
多数の列が表示されますが、関心のあるものはSoftwareVersionMajor、SoftwareVersionMinor、およびSoftwareVersionBuildであり、SQL Serverのバージョン番号が提供されます。たとえば、システムでは、これらは10、0、および4000であり、10.0.4000(2008 SP2)を意味します。
サーバーが実行しているバージョンで復元するには古すぎるバックアップでこれを行おうとするとどうなるかわかりませんが、エラーが発生して情報が表示されない場合があります(ただし、それ自体で少なくともいくつかの手がかりが得られます)元のバージョン)。
MDFファイルの場合、次のコマンドを試してください。
dbcc checkprimaryfile ('c:\MyApp\AppData\foo.mdf', 2)
値を持つ3つのプロパティを出力します:Database name
、Database version
およびCollation
。
構文は次のとおりです(コマンドは文書化されていないため、詳細はこちら)。
DBCC CHECKPRIMARYFILE({'FileName'} [、opt = {0 | 1 | 2 | 3}])
FileNameは、SQL Serverデータベースプライマリデータファイルの.mdfファイルの実際のパスに他なりません。
Opt = 0-ファイルがSQL Serverデータベースプライマリデータファイル(.mdf)かどうかを検証します。
Opt = 1-データベースに関連付けられているすべてのファイルのデータベース名、サイズ、最大サイズ、成長、ステータス、およびパスを返します。
Opt = 2-データベース名、バージョン、照合情報を返します。
Opt = 3-データベースに関連付けられているすべてのファイルの名前、ステータス、パスを返します。
良い質問!SQL Server 2008 R2バックアップファイルをSQL Server 2005に復元しようとする試行錯誤のプロセスを除けば、そうは思えません。明らかに、それは機能しません。Management Studioを使用して(復元のために目次ボタンをクリックする)興味深いものが表示されるかどうかはすぐに思い出せません。
試したことはありませんが、Red GateのVirtual Restoreなどのサードパーティ製ツールで通知される可能性があります。バックアップファイルの「内部」にあるデータベースを確認できます。 http://www.red-gate.com/products/dba/sql-virtual-restore/
これは、データベースのブートページの情報を使用して見つけることができます。私はこれについてhttp://sankarreddy.com/2010/05/database-internal-version-create-version-and-current-version/で書いた