Als beste Methode eine bestehende Datenbank (ohne Fehlermeldung) zu löschen ist folgender SQL-Befehl:
-- ============================================= -- Author: Erhard Rainer -- Create date: 2015-09-15 -- Description: Löscht eine DB zuverlässig -- Beispiel -- EXEC [mtn].[usp_DropDatabase] @DBName = 'Test' -- ============================================= -- 2017-04-13 - ER - Abfangen, wenn keine DB übergeben wurde CREATE PROCEDURE [mtn].[usp_DropDatabase] @DBName as nvarchar(max) = null AS BEGIN SET NOCOUNT ON; if (@DBName is not null) Begin DECLARE @SQL as nvarchar(max); IF EXISTS (SELECT 1 FROM sys.databases WHERE [name] = @DBName) BEGIN SET @SQL = N'USE ' + @DBName + '; ALTER DATABASE ' + @DBName + ' SET SINGLE_USER WITH ROLLBACK IMMEDIATE; USE master; DROP DATABASE ' + @DBName + ';'; EXEC (@SQL); EXEC('USE tempdb;') End; END; END GO
siehe auch: