Symptôme:

Lorsque vous essayez d'attacher une base de données .MDF dans SQL Server, vous voyez le message d'erreur suivant:

Échec de la récupération des données pour cette demande. (Microsoft.SqlServer.Management.Sdk.Sfc)

Une exception s'est produite lors de l'exécution d'une instruction ou d'un lot Transact-SQL. (Microsoft.SqlServer.ConnectionInfo)

xxx.mdf n'est pas un fichier de base de données primaire. (Microsoft SQL Server, Erreur: 5171)

où 'xxx.mdf est le nom du fichier MDF à joindre.

Capture d'écran du message d'erreur:

Explication précise:

Les données dans le fichier MDF sont stockées sous forme de pages, chaque page est de 8 Ko. La première page est appelée la page d'en-tête de fichier, qui contient le most des informations importantes sur l'ensemble du fichier, telles que la signature du fichier, la taille du fichier, la compatibilité, etc. Les pages restantes contiennent également les informations importantes, y compris les informations d'allocation de page ainsi que les données réelles.

Si la page d'en-tête du fichier MDF ou d'autres pages de gestion importantes sont endommagées ou corrompues et ne peuvent pas être reconnues par Microsoft SQL Server, puis SQL Server pense que l'ensemble du fichier n'est pas un fichier de base de données primaire valide et signale cette erreur.

Vous pouvez utiliser notre produit DataNumen SQL Recovery pour récupérer les données du fichier MDF corrompu et résoudre cette erreur.

Exemples de fichiers:

Exemples de fichiers MDF corrompus à l'origine de l'erreur:

SQL Server version Fichier MDF corrompu Fichier MDF corrigé par DataNumen SQL Recovery
SQL Server 2005 Erreur1_1.mdf Erreur1_1_fixed.mdf
SQL Server 2008 R2 Erreur1_2.mdf Erreur1_2_fixed.mdf
SQL Server 2012 Erreur1_3.mdf Erreur1_3_fixed.mdf
SQL Server 2014 Erreur1_4.mdf Erreur1_4_fixed.mdf