Fehlerhaft gekennzeichnete Datenbank im Microsoft SQL-Server: Wie kann diese repariert werden?

Ralf Sagmeister | 7. Juli 2026

MSQL

Gründe für das Problem und Schritte einer korrekten Vorgehensweise zur Wiederherstellung.

Gründe und Vorgehensweise

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 Unstimmig­keiten kommen kann. Aber hier gilt folgender Grundsatz: Ein vorhandenes Backup hat noch niemandem geschadet.