Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
van toepassing op:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
Verwijdert één of meer gebruikersdatabases of databasesnapshots uit een instantie van de SQL Server Database Engine.
Transact-SQL syntaxis-conventies
Syntax
SQL Server-syntaxis.
DROP DATABASE [ IF EXISTS ] { database_name | database_snapshot_name } [ ,...n ]
[ ; ]
Azure SQL Database, Azure Synapse Analytics en Analytics Platform System syntax.
DROP DATABASE database_name
[ ; ]
Arguments
INDIEN AANWEZIG
van toepassing op: SQL Server 2016 (13.x) en latere versies
Sluit de database voorwaardelijk alleen uit als deze al bestaat.
database_name
Specificeert de naam van de te verwijderen database. Om een lijst van databases weer te geven, gebruik je de katalogweergave sys.databases .
database_snapshot_name
Specificeert de naam van een databasesnapshot die verwijderd moet worden.
Remarks
Een database kan worden verwijderd ongeacht de staat: offline, alleen-lezen, verdacht, enzovoort. Om de huidige status van een database weer te geven, gebruik je de sys.databases catalogusweergave.
Een verlaten database kan alleen worden aangemaakt door een back-up te herstellen. Databasesnapshots kunnen niet worden geback-upt en kunnen dus ook niet worden hersteld.
Wanneer een database wordt verwijderd, moet de hoofddatabase worden geback-upt.
Het verwijderen van een database verwijdert de database uit een instantie van SQL Server en verwijdert de fysieke schijfbestanden die door de database worden gebruikt. Als de database, of een van de bestanden ervan, offline is wanneer deze wordt verwijderd, worden de schijfbestanden niet verwijderd. Deze bestanden kunnen handmatig worden verwijderd met behulp van een bestandsbeheerder zoals File Explorer. Om een database van de huidige server te verwijderen zonder de bestanden uit het bestandssysteem te verwijderen, gebruik je sp_detach_db.
Warning
In SQL Server 2016 (13.x) en latere versies zal het verwijderen van een database met FILE_SNAPSHOT back-ups die eraan gekoppeld zijn slagen, maar de databasebestanden met bijbehorende snapshots worden niet verwijderd om te voorkomen dat de back-ups die naar deze databasebestanden verwijzen ongeldig worden gemaakt. Het bestand wordt ingekort, maar wordt niet fysiek verwijderd om de FILE_SNAPSHOT back-ups intact te houden. Voor meer informatie, zie SQL Server backup en herstel met Azure Blob Storage.
SQL Server
Het verwijderen van een databasesnapshot verwijdert de databasesnapshot uit een instantie van SQL Server en verwijdert de spaarzame bestanden van het fysieke NTFS-bestandssysteem die door de snapshot worden gebruikt. Voor informatie over het gebruik van spaarzame bestanden door databasesnapshots, zie Database snapshots (SQL Server). Het verwijderen van een databasesnapshot verwijdert de vermeldingen in de plancache die bij de databasesnapshot hoort, niet in de instantie als geheel. Als u de plancache wist, wordt een hercompilatie van alle volgende uitvoeringsplannen veroorzaakt. Dit kan een plotselinge, tijdelijke afname van de queryprestaties veroorzaken.
Voor elke geclearde cachestore in de plancache bevat het SQL Server-foutlogboek het volgende informatieve bericht. Dit bericht wordt elke vijf minuten geregistreerd zolang de cache binnen dat tijdsinterval wordt leeggemaakt.
SQL Server has encountered %d occurrence(s) of cachestore flush for the '%s' cachestore (part of plan cache) due to some database maintenance or reconfigure operations.
Interoperabiliteit
SQL Server
Om een database te verwijderen die is gepubliceerd voor transactionele replicatie, of gepubliceerd of geabonneerd op merge replicatie, moet je eerst replicatie uit de database verwijderen. Als een database beschadigd is, of replicatie niet eerst verwijderd kan worden (of beide), kun je in de meeste gevallen de database nog steeds verwijderen door ALTER DATABASE de database offline te zetten en daarna te verwijderen.
Als de database betrokken is bij log shipping, verwijder dan log shipping voordat je de database verwijdert. Zie Over logboekverzending (SQL Server)voor meer informatie.
Limitations
Systeemdatabases kunnen niet worden verwijderd.
De DROP DATABASE verklaring moet in autocommit-modus draaien en is niet toegestaan in een expliciete of impliciete transactie. Autocommit-modus is de standaard transactiebeheermodus.
Warning
Je kunt een database die momenteel wordt gebruikt niet laten vallen. Dit betekent dat er sloten worden vastgehouden voor lezen of schrijven door elke gebruiker. Een manier om gebruikers uit de database te verwijderen is door ALTER DATABASE de database op SINGLE_USER te zetten. In deze strategie moet je de ALTER DATABASE en DROP DATABASE in dezelfde batch uitvoeren, om te voorkomen dat een andere verbinding claimt dat een single user session is toegestaan. Voor meer informatie, zie Voorbeeld D.
SQL Server
Alle databasesnapshots op een database moeten worden verwijderd voordat de database kan worden verwijderd.
Het verwijderen van een database-enable voor Stretch Database verwijdert de externe data niet. Als je de externe data wilt verwijderen, moet je die handmatig verwijderen.
Important
Stretch Database is verouderd verklaard in SQL Server 2022 (16.x) en Azure SQL Database. Deze functie wordt verwijderd in een toekomstige versie van de database-engine. Vermijd het gebruik van deze functie in nieuwe ontwikkelwerkzaamheden en plan om toepassingen te wijzigen die momenteel gebruikmaken van deze functie.
Azure SQL Database
Je moet verbonden zijn met de master database om een database te kunnen verwijderen.
De DROP DATABASE instructie moet de enige instructie zijn in een SQL-batch en je kunt maar één database tegelijk verwijderen.
Azure Synapse Analytics
Je moet verbonden zijn met de master database om een database te kunnen verwijderen.
De DROP DATABASE instructie moet de enige instructie zijn in een SQL-batch en je kunt maar één database tegelijk verwijderen.
Permissions
SQL Server
Vereist toestemming CONTROL voor de database, of ALTER ANY DATABASE toestemming, of lidmaatschap van de db_owner vaste databaserol.
Azure SQL Database
Alleen de server-level principal login (gecreëerd door het provisioningproces) of leden van de databaserol van de dbmanager kunnen een database verwijderen.
Analytics Platformsysteem (PDW)
Vereist toestemming CONTROL voor de database, of ALTER ANY DATABASE toestemming, of lidmaatschap van de db_owner vaste databaserol.
Examples
A. Verwijder één enkele database
Het volgende voorbeeld verwijdert de Sales database.
DROP DATABASE Sales;
B. Meerdere databases laten vallen
Het volgende voorbeeld verwijdert elk van de vermelde databases.
DROP DATABASE Sales, NewSales;
C. Plaats een databasesnapshot
Het volgende voorbeeld verwijdert een databasesnapshot, genaamd sales_snapshot0600, zonder de brondatabase te beïnvloeden.
DROP DATABASE sales_snapshot0600;
D. Verwijder een database nadat je hebt gecontroleerd of deze bestaat
Het volgende voorbeeld controleert eerst of er een database met naam Sales bestaat. Als dat zo is, verandert het voorbeeld de database die is benoemd Sales naar single-user modus om de verbreking van alle andere sessies af te dwingen, waarna de database wordt verwijderd. Voor meer informatie over SINGLE_USER, zie ALTER DATABASE SET opties.
USE tempdb;
GO
DECLARE @SQL AS NVARCHAR (1000);
IF EXISTS (SELECT 1
FROM sys.databases
WHERE [name] = N'Sales')
BEGIN
SET @SQL = N'USE [Sales];
ALTER DATABASE Sales SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
USE [tempdb];
DROP DATABASE Sales;';
EXECUTE (@SQL);
END
Verwante inhoud
- ALTER DATABASE (Transact-SQL)
- CREATE DATABASE
- EVENTDATA (Transact-SQL)
- sys.databases