Freigeben über


DROP DATABASE (Transact-SQL)

Entfernt eine oder mehrere Datenbanken oder Datenbanksnapshots von einer SQL Server-Instanz.

Themenlink (Symbol)Transact-SQL-Syntaxkonventionen

Syntax

DROP DATABASE { database_name | database_snapshot_name } [ ,...n ] 
[;]

Argumente

  • database_name
    Gibt den Namen der zu entfernenden Datenbank an. Zum Anzeigen einer Liste von Datenbanken verwenden Sie die sys.databases-Katalogsicht.

  • database_snapshot_name
    Gibt den Namen des zu entfernenden Datenbanksnapshots an.

Hinweise

Für die Verwendung von DROP DATABASE kann der Datenbankkontext der Verbindung nicht mit dem der zu löschenden Datenbank bzw. des zu löschenden Datenbanksnapshots übereinstimmen.

Die DROP DATABASE-Anweisung muss im Autocommitmodus ausgeführt werden und ist in einer expliziten oder impliziten Transaktion nicht zulässig. Der Autocommitmodus ist der Standardmodus für die Transaktionsverwaltung. Weitere Informationen finden Sie unter Autocommit-Transaktionen.

Löschen einer Datenbank

Systemdatenbanken können nicht gelöscht werden.

Beim Löschen einer Datenbank wird die Datenbank von der SQL Server-Instanz entfernt, und die von der Datenbank verwendeten physischen Datenträgerdateien werden gelöscht. Wenn die Datenbank oder eine ihrer Dateien beim Löschen offline ist, werden die Datenträgerdateien nicht gelöscht. Diese Dateien können manuell mit dem Windows-Explorers gelöscht werden. Verwenden Sie sp_detach_db, um eine Datenbank vom aktuellen Server zu entfernen, ohne dass die Dateien aus dem Dateisystem gelöscht werden.

Sie können eine aktuell verwendete Datenbank nicht löschen. Dies bezieht sich auf eine von einem beliebigen Benutzer für Schreib- oder Lesevorgänge geöffnete Datei. Zum Entfernen von Benutzern aus der Datenbank legen Sie die Datenbank mithilfe von ALTER DATABASE auf SINGLE_USER fest.

Alle Datenbanksnapshots in einer Datenbank müssen vor dem Löschen der Datenbank gelöscht werden.

Wenn die Datenbank für den Protokollversand verwendet wird, müssen Sie den Protokollversand vor dem Löschen der Datenbank entfernen. Weitere Informationen finden Sie unter Protokollversandverwaltung.

Eine Datenbank kann unabhängig von ihrem Status (offline, schreibgeschützt, fehlerverdächtig usw.) gelöscht werden. Zur Anzeige des aktuellen Status einer Datenbank verwenden Sie die sys.databases-Katalogsicht.

Eine gelöschte Datenbank kann nur neu erstellt werden, indem eine Sicherungskopie wiederhergestellt wird. Datenbanksnapshots können nicht gesichert und somit nicht wiederhergestellt werden.

Vor dem Löschen einer Datenbank sollte die master-Datenbank gesichert werden.

Löschen eines Datenbanksnapshots

Wenn Sie einen Datenbanksnapshot löschen, wird er aus einer SQL Server-Instanz gelöscht. Außerdem werden die Dateien mit geringer Dichte des physischen NTFS-Dateisystems gelöscht, die vom Snapshot verwendet werden. Informationen zum Verwenden von Dateien mit geringer Dichte für Datenbanksnapshots finden Sie unter Funktionsweise von Datenbanksnapshots.

Durch das Löschen eines Datenbanksnapshots wird der Plancache für die Instanz von SQL Server gelöscht. Durch das Löschen des Plancaches wird eine Neukompilierung aller nachfolgenden Ausführungspläne verursacht, und möglicherweise entsteht plötzlich eine temporäre Verringerung der Abfrageleistung. Für jeden geleerten Cachespeicher im Plancache enthält das SQL Server-Fehlerprotokoll folgende Meldung zur Information: "SQL Server hat für den '%s'-Cachespeicher (Bestandteil des Plancache) %d Leerungen des Cachespeichers gefunden, die von Datenbankwartungs- oder Neukonfigurierungsvorgängen ausgelöst wurden".Diese Meldung wird alle fünf Minuten protokolliert, solange der Cache innerhalb dieses Zeitintervalls geleert wird.

Löschen einer bei der Replikation verwendeten Datenbank

Zum Löschen einer für die Transaktionsreplikation oder die Mergereplikation veröffentlichten Datenbank bzw. einer von der Mergereplikation abonnierten Datenbank müssen Sie zunächst die Replikation von der Datenbank entfernen. Weitere Informationen zum Entfernen der Replikation von einer Datenbank finden Sie unter Entfernen der Replikation. Wenn eine Datenbank beschädigt ist oder die Replikation nicht zuerst entfernt werden kann, oder wenn beides zutrifft, können Sie die Datenbank dennoch mithilfe von ALTER DATABASE löschen. Sie legen hierzu den Status der Datenbank auf offline fest und löschen diese dann.

Berechtigungen

Für die Ausführung von DROP DATABASE benötigt ein Benutzer zumindest die CONTROL-Berechtigung für die Datenbank.

Beispiele

A. Löschen einer einzelnen Datenbank

Im folgenden Beispiel wird die Datenbank Sales entfernt.

DROP DATABASE Sales;

B. Löschen mehrerer Datenbanken

Im folgenden Beispiel wird jede der aufgelisteten Datenbanken entfernt.

DROP DATABASE Sales, NewSales;

C. Löschen eines Datenbanksnapshots

Im folgenden Beispiel wird ein Datenbanksnapshot namens sales_snapshot0600 gelöscht, ohne dass sich dies auf die Quelldatenbank auswirkt.

DROP DATABASE sales_snapshot0600;