Freigeben über


DROP DATABASE (Transact-SQL)

Entfernt eine oder mehrere Benutzerdatenbanken oder Datenbank-Momentaufnahmen aus einer SQL Server-Instanz.

Gilt für: SQL Server (SQL Server 2008 bis aktuelle Version), Windows Azure SQL-Datenbank (Ursprüngliche Version bis aktuelle Version).

Themenlink (Symbol) Transact-SQL-Syntaxkonventionen

Syntax

-- SQL Server Syntax
DROP DATABASE { database_name | database_snapshot_name } [ ,...n ] [;]

-- Windows Azure SQL Database Syntax 
DROP DATABASE database_name [;]

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

    Gilt für: SQL Server 2008 bis SQL Server 2014.

    Gibt den Namen der zu entfernenden Datenbankmomentaufnahme an.

Allgemeine Hinweise

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. Datenbankmomentaufnahmen können nicht gesichert und somit nicht wiederhergestellt werden.

Vor dem Löschen einer Datenbank sollte die master-Datenbank gesichert 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.

SQL Server

Wenn Sie eine Datenbankmomentaufnahme löschen, wird diese aus einer SQL Server-Instanz gelöscht. Außerdem werden die Dateien mit geringer Dichte des physischen NTFS-Dateisystems gelöscht, die von der Momentaufnahme verwendet werden. Informationen zum Verwenden von Dateien mit geringer Dichte für Datenbankmomentaufnahmen finden Sie unter Datenbank-Momentaufnahmen (SQL Server). Durch das Löschen einer Datenbankmomentaufnahme 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.

Interoperabilität

SQL Server

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. 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.

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 Informationen zum Protokollversand (SQL Server).

Windows Azure SQL-Datenbank

Keine

Einschränkungen

Systemdatenbanken können nicht gelöscht werden.

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.

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.

SQL Server

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

Windows Azure SQL-Datenbank

Sie müssen mit der master-Datenbank verbunden sein, um eine Datenbank zu löschen.

Die DROP DATABASE-Anweisung muss die einzige Anweisung in einem SQL-Batch sein, und es darf jeweils nur eine Datenbank gelöscht werden.

Berechtigungen

SQL Server

Erfordert die CONTROL-Berechtigung für die Datenbank oder die ALTER ANY DATABASE-Berechtigung oder die Mitgliedschaft in der festen Datenbankrolle db_owner.

Windows Azure SQL-Datenbank

Datenbanken können nur durch den Prinzipalanmeldenamen auf Serverebene (vom Bereitstellungsprozess erstellt) oder Mitglieder der Datenbankrolle dbmanager gelöscht werden.

Beispiele

A.Löschen einer einzelnen Datenbank

Im folgenden Beispiel wird die Datenbank Sales entfernt.

DROP DATABASE Sales;

B.Löschen mehrerer Datenbanken

Gilt für: SQL Server 2008 bis SQL Server 2014.

Im folgenden Beispiel wird jede der aufgelisteten Datenbanken entfernt.

DROP DATABASE Sales, NewSales;

C.Löschen einer Datenbank-Momentaufnahme

Gilt für: SQL Server 2008 bis SQL Server 2014.

Im folgenden Beispiel wird eine Datenbankmomentaufnahme mit dem Namen sales_snapshot0600 entfernt, ohne dass sich dies auf die Quelldatenbank auswirkt.

DROP DATABASE sales_snapshot0600;

Siehe auch

Verweis

ALTER DATABASE (Transact-SQL)

CREATE DATABASE (SQL Server Transact-SQL)

EVENTDATA (Transact-SQL)

sys.databases (Transact-SQL)