Sintoma:

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

Falha ao recuperar dados para esta solicitação. (Microsoft.SqlServer.Management.Sdk.Sfc)

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

xxx.mdf não é um arquivo de banco de dados principal. (Microsoft SQL Server, Erro: 5171)

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

Captura de tela da mensagem de erro:

Captura de tela do erro "Não é um arquivo de banco de dados primário"

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 a assinatura do arquivo, tamanho do arquivo, compatibilidade, etc. As páginas restantes também contêm as informações importantes, incluindo as informações de alocação de página, bem como os dados reais.

Se a página de cabeçalho do arquivo MDF ou outras páginas de gerenciamento importantes estiverem danificadas ou corrompidas e não puderem ser reconhecidas pela Microsoft SQL Server, Em seguida SQL Server pensará que o arquivo inteiro não é um arquivo de banco de dados primário válido e relatará 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 Erro1_1.mdf Erro1_1_fixed.mdf
SQL Server 2008 R2 Erro1_2.mdf Erro1_2_fixed.mdf
SQL Server 2012 Erro1_3.mdf Erro1_3_fixed.mdf
SQL Server 2014 Erro1_4.mdf Erro1_4_fixed.mdf