Symptôme:
Lorsque vous essayez de joindre une base de données .MDF dans SQL Server, le message d'erreur suivant s'affiche :
É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 du fichier MDF sont stockées sous forme de pages, chaque page fait 8 Ko. La première page est appelée la page d'en-tête du 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 pensera que le fichier entier n'est pas un fichier de base de données primaire 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 | 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 |