Summary: lorsqu'une table d'une base de données SQL est corrompue, vous pouvez restaurer les données de la table à partir de la sauvegarde la plus récente. Si la sauvegarde ne fonctionne pas, vous pouvez utiliser certaines méthodes pour récupérer les données de la table SQL corrompue. Essayez de réparer ou de reconstruire la table, exportez les données de la table SQL Server en utilisant l'utilitaire BCP, ou utilisez un outil de récupération SQL professionnel pour restaurer la base de données et toutes ses tables. Lisez les détails de ces méthodes.
Une table de la base de données SQL peut être corrompue en raison de problèmes de stockage, tels qu’un espace insuffisant sur le disque, des secteurs défectueux sur le disque, etc. En outre, une attaque de logiciels malveillants, un arrêt soudain du système et une suppression accidentelle de données sont d’autres facteurs susceptibles de provoquer la corruption d’une table. L’exécution de DBCC CHECKDB peut vous aider à détecter la corruption de la table. Par exemple, une erreur de corruption de table ressemble à ceci :
Méthodes pour récupérer les données d’une table SQL corrompue
Utilisez les méthodes ci-dessous dans le même ordre pour extraire autant de données que possible de la table corrompue. Toutefois, pour éviter de perdre des données, envisagez d’utiliser un outil de récupération SQL.
Méthode 1 – Exécuter la commande DBCC CHECKDB avec l’option de réparation
Comme vous pouvez le voir dans le message d’erreur ci-dessus, repair_allow_data_loss est suggéré comme niveau minimum de réparation pour corriger l’erreur. Exécutez DBCC CHECKDB avec l’option de réparation pour la table corrompue (comme indiqué ci-dessous).
dbcc checkdb (nom_de_la_table, repair_allow_data_loss) |
Remplacez “nom_table” par le nom de la table SQL qui pose problème. Si cela ne fonctionne pas, essayez la méthode suivante.
Méthode 2 – Déplacer les données d’une table corrompue vers une nouvelle table
Remarque : cette méthode ne fonctionne que si la base de données est accessible. Si la base de données est également affectée, utilisez la méthode 3.
Extrayez tous les objets de la base de données actuelle et créez une nouvelle base de données avec une nouvelle table. Déplacez toutes les données, à l’exception de la table corrompue, vers la nouvelle base de données. Une fois que vous avez terminé, essayez de déplacer les données de la table vers la nouvelle. Les étapes détaillées sont les suivantes :
- Cliquez avec le bouton droit de la souris sur la base de données contenant la table corrompue et développez Tables.
- Cliquez avec le bouton droit de la souris sur la table, cliquez sur Script Table as > DROP And CREATE To > New Query Editor Window.
- Cliquez sur Exécuter pour lancer la requête. La table sélectionnée sera alors supprimée et recréée.
Si le problème persiste, passez à la méthode suivante.
Méthode 3 – Utiliser le programme de copie en bloc (BCP) pour exporter les données du tableau
Bulk Copy Program (BCP) est un programme de ligne de commande qui permet d’extraire des données d’une table de base de données SQL et de les exporter vers un format de fichier spécifié par l’utilisateur. Essentiellement, vous pouvez utiliser l’utilitaire BCP pour exporter toutes les bonnes données de la table corrompue dans un fichier de données. Vous pouvez ensuite réimporter les données dans une nouvelle table. Consultez ce lien pour savoir comment utiliser l’utilitaire.
Bien que cette méthode puisse fonctionner, copier les données d’un grand tableau et les importer dans un nouveau tableau peut prendre de longues heures, voire des jours.
Meilleure alternative pour récupérer les données d’une table SQL corrompue
Une meilleure alternative pour récupérer les données d’une table SQL corrompue est d’utiliser un outil de récupération SQL, comme Stellar Repair for MS SQL. Le logiciel peut aider à effectuer une récupération plus rapide des tables de la base de données SQL. Essentiellement, le logiciel répare les fichiers de base de données (MDF et NDF) et récupère tous les objets, y compris les tables, en quelques clics. Il permet même de récupérer les enregistrements supprimés. Voici comment fonctionne le logiciel :
- Lancez le logiciel après l’avoir téléchargé et installé.
- Parcourez le fichier de base de données contenant la table corrompue. Si vous ne trouvez pas le fichier, utilisez l’option Rechercher pour rechercher le fichier.
- Une fois le fichier de base de données téléchargé, cliquez sur Réparer. Dans la boîte de dialogue “Sélectionner le mode d’analyse” qui s’affiche, choisissez l’option d’analyse standard par défaut pour une analyse plus rapide des tables de la base de données. Si l’analyse standard ne fonctionne pas, utilisez l’option d’analyse avancée.
- Un clic sur OK lance le processus de réparation et affiche un aperçu de toutes les tables et autres objets récupérables.
- Sélectionnez toutes les tables ou certaines d’entre elles que vous souhaitez restaurer et cliquez sur l’icône Enregistrer dans le menu Fichier.
- Dans la boîte de dialogue “Enregistrer la base de données”, procédez comme suit :
- Enregistrez les données récupérées au format MDF, HTML, CSV ou XLS. Si vous avez sélectionné le format de fichier MDF, choisissez d’enregistrer les données dans une nouvelle base de données ou dans une base de données active. Ensuite, entrez les détails du serveur et l’emplacement d’enregistrement des données.
- Cliquez sur Enregistrer.
- Une boîte de message “Sauvegarde terminée” apparaît à la fin de la procédure de réparation.
Vous pouvez accéder aux données du tableau à partir du fichier réparé stocké à l’emplacement sélectionné.
Conclusion
Si la table de votre base de données SQL est devenue corrompue, vous pouvez d’abord vérifier la sauvegarde pour récupérer les données de la table. Si la sauvegarde n’est pas disponible ou ne fonctionne pas, suivez les méthodes discutées dans cet article pour récupérer les données de la table corrompue. Cependant, le meilleur moyen et le plus facile est d’utiliser un outil de récupération SQL pour récupérer toutes les données de la table.