Fehlerhaft gekennzeichnete Datenbank im Microsoft SQL-Server: Wie kann diese repariert werden?
Ralf Sagmeister | 7. Juli 2026
Gründe für das Problem und Schritte einer korrekten Vorgehensweise zur Wiederherstellung.
Wer mit Datenbanken im MS SQL-Server arbeitet, kennt dieses Problem bestimmt. Nach einem unerwarteten Ereignis kann eine Datenbank nicht mehr erreicht werden und wird als fehlerverdächtig gekennzeichnet. Die Gründe hierfür können vielfältig sein:
- Die Datenbank ist beschädigt (wird als "Korrupt" gekennzeichnet).
- Es ist nicht genügend Speicherplatz für den SQL-Server vorhanden, um die Datenbank beim Start wiederherstellen.
- Die Datenbank kann aufgrund defekter Dateien nicht genügend Arbeitsspeicher oder Festplattenplatz geöffnet werden.
- Die Datenbank-Dateien werden vom Betriebssystem, einer Backup-Software von Drittanbietern etc. gesperrt.
- Ein ungeplantes Beenden des SQL-Server Dienstes, ein Stromausfall oder ein Hardware-Fehler.
Um die Datenbank wieder bearbeiten zu können, müssen folgende Schritte durchgeführt werden:
- Öffnen Sie Microsoft SQL-Server Management Studio.
- Stellen Sie eine Verbindung zu der betroffenen SQL-Server Instanz her
- Öffnen Sie eine neue Abfrage
- Kopieren Sie das folgende Script in die Abfrage und ersetzen
„[defekte Datenbank]“ mit dem Namen Ihrer als defekt gekennzeichnet
Datenbank.
USE master;
GO
/***********************************************************************************************************
Suche den korrekten DB-Namen, welche als Fehlerhaft gekennzeichnet ist
***********************************************************************************************************/
SELECT DBName=NAME, [Status]=state_desc
FROM master.sys.databases
WHERE state_desc='SUSPECT'
/***********************************************************************************************************
Jetzt tausche [DATABASENAME] gegen den Namen aus dem Ergebis aus und repariere die Datenbank
- Db in Notfallmodus setzen
- Db in den Einzelnutzermodus setzen
- DB Reparatur ausführen. ACHTUNG: Kann zu Datenverlust führen
***********************************************************************************************************/
ALTER DATABASE [DATABASENAME] SET EMERGENCY
GO
ALTER DATABASE [DATABASENAME] SET SINGLE_USER
GO
DBCC CHECKDB ([DATABASENAME], REPAIR_ALLOW_DATA_LOSS) WITH NO_INFOMSGS;
GO
/***********************************************************************************************************
Anschließend wird nochmals eine Prüfung der Datenbank durchgeführt:
-Wie oben, [DATABASENAME] ersetzen
***********************************************************************************************************/
USE [DATABASENAME]
GO
DBCC CHECKDB WITH NO_INFOMSGS;
GO
/***********************************************************************************************************
Wenn die Prüfung eine fehlerfreie Db ergibt, dann noch von Einzelbenutzer auf Multi-User umstellen
-Wie oben, [DATABASENAME] ersetzen
***********************************************************************************************************/
USE master;
GO
ALTER DATABASE [DATABASENAME] SET MULTI_USER
GO
/***********************************************************************************************************
Anschließend sollte umgehend eine Sicherung der reparierten Datenbank erfolgen.
***********************************************************************************************************/
- Führen Sie die Abfrage aus [vc_single_image image="10521" img_size="full"]
Im Anschluss daran kann die Datenbank wieder in vollem Umfang genutzt werden. Zu beachten ist, dass es aufgrund von Datenverlusten zu Unstimmigkeiten kommen kann. Aber hier gilt folgender Grundsatz: Ein vorhandenes Backup hat noch niemandem geschadet.