DROP DATABASE (Transact-SQL)
Изменения: 12 декабря 2006 г.
Удаляет одну или несколько баз данных или моментальных снимков базы данных из экземпляра SQL Server.
Синтаксические обозначения в Transact-SQL
Синтаксис
DROP DATABASE { database_name | database_snapshot_name } [ ,...n ]
[;]
Аргументы
- database_name
Задает имя удаляемой базы данных. Для просмотра списка баз данных используйте представление каталога sys.databases.
- database_snapshot_name
Задает имя удаляемого моментального снимка базы данных.
Замечания
Чтобы использовать инструкцию DROP DATABASE, контекст подключенной базы данных должен отличаться от контекста удаляемой базы данных или моментального снимка базы данных.
Инструкция DROP DATABASE должна выполняться в режиме автоматической фиксации и не разрешена в явной или неявной транзакции. Режим автоматической фиксации — это режим управления транзакцией по умолчанию. Дополнительные сведения см. в разделе Автоматическая фиксация транзакций.
Удаление базы данных
Системные базы данных удалить невозможно.
При удалении базы данных она удаляется из экземпляра SQL Server, а ее физические файлы удаляются с диска. Если база данных или один из ее файлов во время удаления находится в автономном режиме, файлы с диска не удаляются. Эти файлы можно удалить вручную при помощи обозревателя Windows. Для удаления базы данных с текущего сервера без удаления файлов из файловой системы используйте процедуру sp_detach_db.
Удалить базу данных, которая используется в текущий момент времени, невозможно. Такая база данных может использоваться каким-либо пользователем для чтения или записи данных. Для отключения пользователей от базы данных используйте инструкцию ALTER DATABASE для перевода базы данных в режим SINGLE_USER.
Любые моментальные снимки базы данных должны быть удалены перед удалением базы данных.
Если база данных участвует в доставке журнала, отмените доставку журнала перед удалением базы данных. Дополнительные сведения см. в разделе Доставка журналов.
База данных может быть удалена независимо от ее состояния: в автономном режиме, доступна только для чтения, подозрительная и т.д. Для просмотра текущего состояния базы данных используйте представление каталога sys.databases.
Удаленная база данных может быть повторно создана только с помощью восстановления из резервной копии. Резервное копирование моментальных снимков базы данных произвести невозможно, поэтому они не могут быть восстановлены.
При удалении базы данных необходимо выполнить резервное копирование базы данных master.
Удаление моментального снимка базы данных
При удалении моментального снимка базы данных он удаляется из экземпляра SQL Server, а его физические разреженные файлы удаляются из файловой системы NTFS. Дополнительные сведения об использовании моментальными снимками базы данных разреженных файлов см. в разделе Как работают моментальные снимки базы данных.
Удаление моментального снимка базы данных очищает кэш планов для экземпляра SQL Server. Очистка кэша планов становится причиной перекомпиляции всех последующих планов выполнения и приводит к непредвиденному временному снижению производительности обработки запросов. В SQL Server 2005 с пакетом обновления 2 (SP2) для каждого очищенного хранилища кэша в кэше планов журнал ошибок SQL Server содержит следующее информационное сообщение: "SQL Server обнаружил %d экземпляров, сброшенных на диск хранилищ кэша для хранилища кэша «%s» (части кэша планов) в результате операций по обслуживанию или изменению настройки базы данных. Это сообщение протоколируется каждые пять минут при сбросе кэша в течение этого временного интервала.
Удаление базы данных, используемой в репликации
Чтобы удалить базу данных, опубликованную для репликации транзакций либо опубликованную или подписанную на репликацию слиянием, вначале необходимо удалить репликацию из базы данных. Дополнительные сведения о том, как удалить репликацию из базы данных, см. в разделе Удаление репликации. Если база данных повреждена или репликация не может быть удалена, скорее всего, базу данных все равно можно будет удалить, использовав инструкцию ALTER DATABASE для перевода базы данных в автономный режим, после чего удалить ее.
Разрешения
Для выполнения инструкции DROP DATABASE пользователь должен, как минимум, иметь разрешение CONTROL на базу данных.
Примеры
А. Удаление одиночной базы данных
В следующем примере удаляется база данных Sales
.
DROP DATABASE Sales;
Б. Удаление нескольких баз данных
В следующем примере удаляется каждая из перечисленных баз данных.
DROP DATABASE Sales, NewSales;
В. Удаление моментального снимка базы данных
В следующем примере из базы данных удаляется моментальный снимок с именем sales
_snapshot0600
без влияния на базу данных-источник.
DROP DATABASE sales_snapshot0600;
См. также
Справочник
ALTER DATABASE (Transact-SQL)
CREATE DATABASE (Transact-SQL)
EVENTDATA (Transact-SQL)
sys.databases (Transact-SQL)
Другие ресурсы
Удаление базы данных
Удаление моментального снимка базы данных
Справка и поддержка
Получение помощи по SQL Server 2005
Журнал изменений
Версия | Журнал |
---|---|
12 декабря 2006 г. |
|
17 июля 2006 г. |
|