DROP DATABASE (Transact-SQL)

Удаляет одну или несколько пользовательских баз данных или моментальных снимков базы данных из экземпляра SQL Server.

Применимо для следующих объектов: SQL Server (SQL Server 2008 по текущую версию), База данных SQL Windows Azure (С первоначального выпуска по текущий выпуск).

Значок ссылки на раздел Синтаксические обозначения в Transact-SQL

Синтаксис

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

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

Аргументы

  • database_name
    Задает имя удаляемой базы данных. Для просмотра списка баз данных используйте представление каталога sys.databases.

  • database_snapshot_name

    Применимо для следующих объектов: С SQL Server 2008 по SQL Server 2014 включительно.

    Задает имя удаляемого моментального снимка базы данных.

Общие замечания

База данных может быть удалена независимо от ее состояния: в режиме вне сети, доступна только для чтения, подозрительная и т.д. Для просмотра текущего состояния базы данных используйте представление каталога sys.databases.

Удаленная база данных может быть повторно создана только с помощью восстановления из резервной копии. Резервное копирование моментальных снимков базы данных произвести невозможно, поэтому они не могут быть восстановлены.

При удалении базы данных необходимо выполнить резервное копирование базы данных master.

При удалении базы данных она удаляется из экземпляра SQL Server, а ее физические файлы удаляются с диска. Если база данных или один из ее файлов во время удаления находится в режиме вне сети, файлы с диска не удаляются. Эти файлы можно удалить вручную при помощи обозревателя Windows. Для удаления базы данных с текущего сервера без удаления файлов из файловой системы используйте процедуру sp_detach_db.

SQL Server

При удалении моментального снимка базы данных он удаляется из экземпляра SQL Server, а его физические разреженные файлы удаляются из файловой системы NTFS. Дополнительные сведения об использовании моментальными снимками базы данных разреженных файлов см. в разделе Моментальные снимки базы данных (SQL Server). Удаление моментального снимка базы данных очищает кэш планов для экземпляра SQL Server. Очистка кэша планов вызывает повторную компиляцию всех последующих планов выполнения и может стать причиной внезапного временного снижения производительности запросов. Для каждого очищенного хранилища кэша в кэше планов журнал ошибок SQL Server содержит следующее информационное сообщение:. «SQL Server обнаружил %d экземпляров, записанных на диск хранилищ кэша для хранилища кэша "%s" (части кэша планов) в результате операций по обслуживанию или изменению настройки базы данных». Это сообщение добавляется в журнал каждые пять минут при сбросе кэша в течение этого интервала времени.

Совместимость

SQL Server

Чтобы удалить базу данных, опубликованную для репликации транзакций либо опубликованную или подписанную на репликацию слиянием, вначале необходимо удалить репликацию из базы данных. Если база данных повреждена или репликация не может быть удалена, скорее всего, базу данных все равно можно будет удалить, использовав инструкцию ALTER DATABASE для перевода базы данных в режим вне сети, после чего удалить ее.

Если база данных участвует в доставке журнала, отмените доставку журнала перед удалением базы данных. Дополнительные сведения см. в разделе Сведения о доставке журналов (SQL Server).

База данных SQL Windows Azure

Нет

Ограничения

Системные базы данных удалить невозможно.

Инструкция DROP DATABASE должна выполняться в режиме автоматической фиксации и не разрешена в явной или неявной транзакции. Режим автоматической фиксации — это режим управления транзакцией по умолчанию.

Удалить базу данных, которая используется в текущий момент времени, невозможно. Такая база данных может использоваться каким-либо пользователем для чтения или записи данных. Для отключения пользователей от базы данных используйте инструкцию ALTER DATABASE для перевода базы данных в режим SINGLE_USER.

SQL Server

Любые моментальные снимки базы данных должны быть удалены перед удалением базы данных.

База данных SQL Windows Azure

Для удаления базы данных необходимо соединение с базой данных master.

Инструкция DROP DATABASE должна быть единственной инструкцией в пакете SQL, и ее можно удалить только одновременно с базой данных.

Разрешения

SQL Server

Требуется разрешение CONTROL в базе данных, разрешение ALTER ANY DATABASE или членство в предопределенной роли базы данных db_owner.

База данных SQL Windows Azure

Удалить базу данных могут только пользователи с именем входа субъекта серверного уровня (созданного процессом провизионирования) или члены роли dbmanager базы данных.

Примеры.

А.Удаление одиночной базы данных

В следующем примере удаляется база данных Sales.

DROP DATABASE Sales;

Б.Удаление нескольких баз данных

Применимо для следующих объектов: С SQL Server 2008 по SQL Server 2014 включительно.

В следующем примере удаляется каждая из перечисленных баз данных.

DROP DATABASE Sales, NewSales;

В.Удаление моментального снимка базы данных

Применимо для следующих объектов: С SQL Server 2008 по SQL Server 2014 включительно.

В следующем примере из базы данных удаляется моментальный снимок с именем sales_snapshot0600 без влияния на базу данных-источник.

DROP DATABASE sales_snapshot0600;

См. также

Справочник

ALTER DATABASE (Transact-SQL)

CREATE DATABASE (SQL Server Transact-SQL)

EVENTDATA (Transact-SQL)

sys.databases (Transact-SQL)