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 |