Sintoma:

Ao tentar anexar um banco de dados .MDF em SQL Server, você vê 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:

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á 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 Error1_1.mdf Error1_1_fixed.mdf
SQL Server 2008 R2 Error1_2.mdf Error1_2_fixed.mdf
SQL Server 2012 Error1_3.mdf Error1_3_fixed.mdf
SQL Server 2014 Error1_4.mdf Error1_4_fixed.mdf