MDFまたはBAKファイルの作成に使用されたSQL Serverのバージョンを確認する方法はありますか?


19

SQL Server DBのローカルコピーをMDFファイルとして保存しています。そのファイルの作成に使用されたSQL Serverのバージョンを確認する方法はありますか?

回答:


8

オフセット0x12064の2バイトを調べることにより、データベースのプライマリMDFファイルのバージョンを確認できます。MDFファイルのデータベースバージョンを確認する方法を参照してください。

.bakファイル下位バイトは0xEACあり、より高い0xEADです。

MS SQLのほとんどの内部データベースバージョン番号は、こちらにあります


1
注意!これは、x64エディションのMS SQLでは異なるようです。すべての場合に、SFMB、SSET、VOLB、MSCIの4つのブロックがあります。バージョンはMSCIブロックにあります。問題は、ブロックサイズが一定ではないことです。幸いなことに、ブロックサイズは512(0x200)で除算できるようです。512バイトごとにシークし、「MSCI」を探してください。次に、下位バイトの場合は172バイト(0xAC)、上位バイトの場合は次のバイトにジャンプします。
Nux

22

RESTORE HEADERONLYを使用します。たとえば

RESTORE HEADERONLY FROM DISK = 'D:\whatever.bak'

多数の列が表示されますが、関心のあるものはSoftwareVersionMajor、SoftwareVersionMinor、およびSoftwareVersionBuildであり、SQL Serverのバージョン番号が提供されます。たとえば、システムでは、これらは10、0、および4000であり、10.0.4000(2008 SP2)を意味します。

サーバーが実行しているバージョンで復元するには古すぎるバックアップでこれを行おうとするとどうなるかわかりませんが、エラーが発生して情報が表示されない場合があります(ただし、それ自体で少なくともいくつかの手がかりが得られます)元のバージョン)。


1
私はこれを試してみるつもりでしたが、バックアップデバイスがセットアップされていません:-(。ただし、提案をありがとう!
ベンマコーマック

1
あなたは、SQL 2008の上に例えばSQL 2012のバックアップをテストし、このクエリから何も使用可能な結果を得るていないことに注意してください
木の実

6

MDFファイルの場合、次のコマンドを試してください。

dbcc checkprimaryfile ('c:\MyApp\AppData\foo.mdf', 2)

値を持つ3つのプロパティを出力します:Database nameDatabase 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-データベースに関連付けられているすべてのファイルの名前、ステータス、パスを返します。


1
回答に説明を追加して、より意味のあるものにすることができます。
ドリューコーリー

0

良い質問!SQL Server 2008 R2バックアップファイルをSQL Server 2005に復元しようとする試行錯誤のプロセスを除けば、そうは思えません。明らかに、それは機能しません。Management Studioを使用して(復元のために目次ボタンをクリックする)興味深いものが表示されるかどうかはすぐに思い出せません。

試したことはありませんが、Red GateのVirtual Restoreなどのサードパーティ製ツールで通知される可能性があります。バックアップファイルの「内部」にあるデータベースを確認できます。 http://www.red-gate.com/products/dba/sql-virtual-restore/



0

SQL Server MSDNフォーラムのこの投稿から、私がこれまでに見た中で最高の方法が収集されました。

基本的には、ファイルに入り、mdfファイルのブートページを調べることが含まれます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.