Sintoma:

Ao tentar anexar um banco de dados .MDF em SQL Server, você vê a seguinte mensagem de erro:

Falha ao anexar banco de dados para o servidor 'xxx'. (Microsoft.SqlServer.Smo)

Ocorreu uma exceção ao executar uma instrução Transact-SQL ou lote. (Microsoft.SqlServer.ConnectionInfo)

O cabeçalho do arquivo 'xxx.mdf' não é um cabeçalho de arquivo de banco de dados válido. A propriedade FILE SIZE está incorreta. (Micosoft SQL Server, Erro: 5172)

onde 'xxx.mdf' é o nome do arquivo MDF a ser anexado.

Captura de tela da mensagem de erro:

Explicação precisa:

Os dados no arquivo MDF são armazenados como páginas, cada página tem 8 KB. A primeira página é chamada de página de cabeçalho do arquivo, que contém o most informações importantes sobre todo o arquivo, como assinatura do arquivo, tamanho do arquivo, compatibilidade, etc.

Se a página de cabeçalho do arquivo MDF estiver danificada ou corrompida e não puder ser reconhecida pela Microsoft SQL Server, Em seguida SQL Server pensará que o cabeçalho não é válido e relatará esse erro.

Você pode usar nosso produto DataNumen SQL Recovery para recuperar os dados do arquivo MDF corrompido e resolver esse erro.

Arquivos de amostra:

Amostra de arquivos MDF corrompidos que causarão o erro:

SQL Server versão Arquivo MDF corrompido Arquivo MDF corrigido por DataNumen SQL Recovery
SQL Server 2005 Error2_1.mdf Error2_1_fixed.mdf
SQL Server 2008 R2 Error2_2.mdf Error2_2_fixed.mdf
SQL Server 2012 Error2_3.mdf Error2_3_fixed.mdf
SQL Server 2014 Error2_4.mdf Error2_4_fixed.mdf