Síntoma:

Al intentar adjuntar una base de datos .MDF en SQL Server, verá el siguiente mensaje de error:

No se pudieron recuperar los datos de esta solicitud. (Microsoft.SqlServer.Management.Sdk.Sfc)

Se produjo una excepción al ejecutar una instrucción Transact-SQL o un lote. (Microsoft.SqlServer.ConnectionInfo)

xxx.mdf no es un archivo de base de datos principal. (Microsoft SQL Server, Error: 5171)

donde 'xxx.mdf es el nombre del archivo MDF que se adjuntará.

Captura de pantalla del mensaje de error:

Captura de pantalla del error "No es un archivo de base de datos principal"

Explicación precisa:

Los datos en el archivo MDF se almacenan como páginas, cada página es de 8 KB. La primera página se llama página de encabezado del archivo, que contiene la most información importante sobre todo el archivo, como la firma del archivo, el tamaño del archivo, la compatibilidad, etc. Las páginas restantes también contienen la información importante, incluida la información de asignación de páginas, así como los datos reales.

Si la página de encabezado del archivo MDF u otras páginas de administración importantes están dañadas o corrompidas y Microsoft no las puede reconocer SQL Server, entonces SQL Server pensará que todo el archivo no es un archivo de base de datos primario válido y notificará este error.

Puedes usar nuestro producto DataNumen SQL Recovery para recuperar los datos del archivo MDF corrupto y solucionar este error.

Archivos de muestra:

Ejemplos de archivos MDF corruptos que causarán el error:

SQL Server versión Archivo MDF dañado Archivo MDF arreglado por DataNumen SQL Recovery
SQL Server 2005 Error1_1.mdf Error1_1_fijo.mdf
SQL Server 2008 R2 Error1_2.mdf Error1_2_fijo.mdf
SQL Server 2012 Error1_3.mdf Error1_3_fijo.mdf
SQL Server 2014 Error1_4.mdf Error1_4_fijo.mdf