Symptôme:

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

Attacher 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 d'un fichier MDF sont stockées sous forme de pages, chaque page ayant une taille de 8 Ko. La première page, appelée page d'en-tête de fichier, contient le most des informations importantes sur l'ensemble du fichier, y compris la signature du fichier, sa taille, sa compatibilité et autres détails essentiels.

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 qui provoqueront l'erreur :

SQL Server version Fichier MDF corrompu Fichier MDF fixé 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