Existe uma maneira de determinar a versão do SQL Server que foi usada para criar um arquivo MDF ou BAK?

18

Eu tenho uma cópia local de um banco de dados do SQL Server armazenado como um arquivo MDF. Existe uma maneira de dizer qual versão do SQL Server foi usada para criar esse arquivo?

    
por Ben McCormack 04.04.2011 / 20:59

6 respostas

7

Você pode determinar a versão do arquivo MDF primário de um banco de dados observando os dois bytes no deslocamento 0x12064. Veja Como determinar a versão do banco de dados de um Arquivo MDF .

Em .bak , o byte inferior dos arquivos é 0xEAC e o superior é 0xEAD.

Você pode encontrar a maioria dos números de versão do banco de dados interno para o MS SQL aqui .

    
por 04.04.2011 / 21:44
21

Use RESTORE HEADERONLY, por exemplo,

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

Você obterá muitas colunas, mas as de maior interesse são SoftwareVersionMajor, SoftwareVersionMinor e SoftwareVersionBuild, que devem fornecer o número da versão do SQL Server. No nosso sistema, por exemplo, são 10, 0 e 4000, ou seja, 10.0.4000 (2008 SP2).

Não tenho certeza do que acontece se você tentar fazer isso com um backup antigo demais para ser restaurado na versão em que o servidor está sendo executado. Você pode obter um erro e nenhuma informação (embora isso, pelo menos, forneça algumas pistas sobre a versão é de).

    
por 04.04.2011 / 21:40
5

Para arquivos MDF, tente este comando:

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

Ele gerará 3 propriedades com valores: Database name , Database version e Collation .

A sintaxe está seguindo (o comando é não documentado, portanto, mais informações aqui ):

DBCC CHECKPRIMARYFILE ({'FileName'} [, opt = {0|1|2|3}])

FileName is nothing but the actual path of the SQL Server Database Primary Data File .mdf file.

Opt = 0 - Verifies whether the file is a SQL Server Database Primary Data file (.mdf).

Opt = 1 - Returns Database Name, Size, Max Size, Growth, Status and Path of all files associated to the database.

Opt = 2 - Returns Database Name, Version and Collation information.

Opt = 3 - Returns Name, Status and Path of all files associated to the database.

    
por 19.09.2013 / 10:57
0

Boa pergunta! Eu não acredito, além do processo de tentativa e erro de - digamos - tentar restaurar um arquivo de backup do SQL Server 2008 R2 no SQL Server 2005. Obviamente, isso não funcionará. Não me lembro do fato de usar o Management Studio - e clicar no botão de conteúdo de uma restauração - mostrará algo interessante.

Eu não os experimentei, mas é possível que uma ferramenta de terceiros, como o Virtual Restore do Red Gate, lhe diga: ele permite que você veja o banco de dados "dentro" do arquivo de backup. link

    
por 04.04.2011 / 21:26
0

Você pode encontrar isso usando as informações na página de inicialização do banco de dados. Eu escrevi sobre isso em link

    
por 04.04.2011 / 22:06
0

A melhor maneira que eu já vi para fazer isso foi obtida de esta postagem nos fóruns do SQL Server MSDN.

Basicamente, envolve entrar no arquivo e examinar a página de inicialização do arquivo mdf.

    
por 04.04.2011 / 22:11

Tags