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:
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 |