Eine Tabelle in der SQL-Datenbank kann aufgrund von Speicherproblemen, wie unzureichendem Speicherplatz auf dem Laufwerk, fehlerhaften Sektoren auf dem Laufwerk usw. beschädigt werden. Darüber hinaus sind ein Malware-Angriff, ein plötzliches Herunterfahren des Systems und versehentliches Löschen von Daten weitere Faktoren, die eine Beschädigung der Tabelle verursachen können. Die Ausführung von DBCC CHECKDB kann Ihnen helfen, eine Beschädigung der Tabelle zu erkennen. Ein Tabellenbeschädigungsfehler sieht zum Beispiel wie folgt aus:
Methoden zum Abrufen von Daten aus einer beschädigten SQL-Tabelle
Verwenden Sie die unten aufgeführten Methoden in der gleichen Reihenfolge, um so viele Daten wie möglich aus der beschädigten Tabelle zu extrahieren. Um den Verlust von Daten zu vermeiden, sollten Sie jedoch ein SQL recovery tool verwenden.
Methode 1 – DBCC CHECKDB-Befehl mit Reparaturoption ausführen
Wie Sie in der obigen Fehlermeldung sehen können, wird repair_allow_data_loss als minimale Reparaturebene zur Behebung des Fehlers vorgeschlagen. Führen Sie DBCC CHECKDB mit der Option repair für die beschädigte Tabelle aus (wie unten angegeben).
dbcc checkdb (tabellen_name, repair_allow_data_loss) |
Ersetzen Sie “tabellenname” durch den Namen der problematischen SQL-Tabelle. Wenn dies nicht funktioniert, versuchen Sie die nächste Methode.
Methode 2 – Verschieben von Daten aus einer beschädigten Tabelle in eine neue Tabelle
Hinweis: Diese Methode funktioniert nur, wenn die Datenbank zugänglich ist. Wenn auch die Datenbank betroffen ist, verwenden Sie Methode 3.
Löschen Sie alle Objekte in der aktuellen Datenbank und erstellen Sie eine neue Datenbank mit einer neuen Tabelle. Verschieben Sie alle Daten mit Ausnahme der beschädigten Tabelle in die neue Datenbank. Anschließend versuchen Sie, die Daten aus der Tabelle in die neue Tabelle zu verschieben. Die detaillierten Schritte sind wie folgt:
- Klicken Sie mit der rechten Maustaste auf die Datenbank, die die beschädigte Tabelle enthält, und erweitern Sie “Tabellen”.
- Klicken Sie mit der rechten Maustaste auf die Tabelle und dann auf Skripttabelle als > DROP und CREATE To > Neues Abfrage-Editorfenster.
- Klicken Sie auf Ausführen, um die Abfrage auszuführen. Dadurch wird die ausgewählte Tabelle gelöscht und neu erstellt.
Wenn das Problem weiterhin besteht, fahren Sie mit der nächsten Methode fort.
Methode 3 – Verwenden Sie das Massenkopierprogramm (BCP) zum Exportieren der Tabellendaten
Das Bulk Copy Program (BCP) ist ein Befehlszeilenprogramm, mit dem Sie Daten aus einer SQL-Datenbanktabelle extrahieren und in ein benutzerdefiniertes Dateiformat exportieren können. Im Wesentlichen können Sie das BCP-Dienstprogramm verwenden, um alle guten Daten aus der beschädigten Tabelle in eine Datendatei zu exportieren. Anschließend können Sie die Daten wieder in eine neue Tabelle importieren. Unter diesem Link erfahren Sie, wie Sie das Dienstprogramm verwenden können.
Diese Methode mag zwar funktionieren, aber das Kopieren der Daten einer großen Tabelle und das Importieren in eine neue Tabelle kann viele Stunden oder Tage in Anspruch nehmen.
Bessere Alternative zum Abrufen von Daten aus einer beschädigten SQL-Tabelle
Eine bessere Alternative zur Wiederherstellung von Daten aus einer beschädigten SQL-Tabelle ist die Verwendung eines SQL-Wiederherstellungstools, wie Stellar Repair for MS SQL. Die Software kann helfen, SQL-Datenbanktabellen schneller wiederherzustellen. Im Wesentlichen repariert die Software die Datenbankdateien (MDF und NDF) und stellt alle Objekte, einschließlich Tabellen, mit wenigen Klicks wieder her. Sie ermöglicht sogar die Wiederherstellung gelöschter Datensätze. So funktioniert die Software:
- Starten Sie die Software, nachdem Sie sie heruntergeladen und installiert haben.
- Durchsuchen Sie die Datenbankdatei, die die beschädigte Tabelle enthält. Wenn Sie die Datei nicht finden können, verwenden Sie die Option Suchen, um die Datei zu durchsuchen.
- Sobald die Datenbankdatei hochgeladen ist, klicken Sie auf Reparieren. Wählen Sie im Dialogfeld “Scan-Modus auswählen” die Standard-Scan-Option, um die Datenbanktabellen schneller zu scannen. Wenn die Standardüberprüfung nicht funktioniert, verwenden Sie die Option “Erweiterte Überprüfung”.
- Wenn Sie auf OK klicken, wird der Reparaturvorgang gestartet und eine Vorschau aller wiederherstellbaren Tabellen und anderer Objekte angezeigt.
- Wählen Sie alle oder bestimmte Tabellen aus, die Sie wiederherstellen möchten, und klicken Sie im Menü Datei auf das Symbol Speichern.
- Führen Sie im Dialogfeld “Datenbank speichern” die folgenden Schritte aus:
- Speichern Sie die wiederhergestellten Daten im MDF-, HTML-, CSV- oder XLS-Dateiformat. Wenn Sie das MDF-Dateiformat gewählt haben, wählen Sie, ob Sie die Daten in einer neuen oder in einer Live-Datenbank speichern möchten. Geben Sie anschließend die Serverdetails und den Speicherort für die Daten ein.
- Klicken Sie auf Speichern.
- Nach Abschluss des Reparaturvorgangs erscheint die Meldung “Speichern abgeschlossen”.
Sie können auf die Tabellendaten aus der reparierten Datei zugreifen, die an dem ausgewählten Ort gespeichert ist.
Schlussfolgerung
Wenn Ihre SQL-Datenbanktabelle beschädigt wurde, können Sie zunächst die Sicherung überprüfen, um die Tabellendaten zu erhalten. Falls das Backup nicht verfügbar ist oder nicht funktioniert, folgen Sie den in diesem Beitrag besprochenen Methoden, um Daten aus der beschädigten Tabelle zu erhalten. Der beste und einfachste Weg ist jedoch die Verwendung eines SQL-Wiederherstellungstools, um alle Tabellendaten wiederherzustellen.
Was this article helpful?