Symptôme:

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

L'attachement de la base de données a échoué pour le serveur «xxx». (Microsoft.SqlServer.Smo)

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

L'en-tête du fichier «xxx.mdf» n'est pas un en-tête de fichier de base de données valide. La propriété FILE SIZE est incorrecte. (Micosoft SQL Server, Erreur: 5172)

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.

Si la page d'en-tête du fichier MDF est endommagée ou corrompue et ne peut pas être reconnue par Microsoft SQL Server, puis SQL Server pensera que l'en-tête n'est pas valide et signalera 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 Erreur2_1.mdf Erreur2_1_fixed.mdf
SQL Server 2008 R2 Erreur2_2.mdf Erreur2_2_fixed.mdf
SQL Server 2012 Erreur2_3.mdf Erreur2_3_fixed.mdf
SQL Server 2014 Erreur2_4.mdf Erreur2_4_fixed.mdf