Sintoma:

Ao tentar anexar um banco de dados .MDF em SQL Server, você verá 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 em um arquivo MDF são armazenados como páginas, com cada página tendo 8 KB de tamanho. A primeira página, chamada de página de cabeçalho do arquivo, contém o most informações importantes sobre o arquivo inteiro, incluindo a assinatura do arquivo, tamanho, compatibilidade e outros detalhes essenciais.

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 reportará este erro.

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

Arquivos de amostra:

Exemplo 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 Erro2_1.mdf Erro2_1_fixed.mdf
SQL Server 2008 R2 Erro2_2.mdf Erro2_2_fixed.mdf
SQL Server 2012 Erro2_3.mdf Erro2_3_fixed.mdf
SQL Server 2014 Erro2_4.mdf Erro2_4_fixed.mdf