Поиск…


Вступление

Ключевое слово Drop может использоваться с различными объектами SQL, в этом разделе приводятся быстрые примеры различного использования с объектами базы данных.

замечания

Ссылки на MSDN.

Падение столов

Команда DROP TABLE удаляет определения таблиц и все данные, индексы, триггеры, ограничения и соответствующие разрешения.

Перед тем как отбросить таблицу, вы должны проверить, есть ли какой-либо объект (представления, хранимые процедуры и другие таблицы), которые ссылаются на таблицу.

Вы не можете отбросить таблицу, на которую ссылается другая таблица, с помощью FOREIGN KEY. Вы должны сначала сбросить ссылку FOREIGN KEY.

Вы можете отбросить таблицу, на которую ссылается представление или хранимая процедура, но после удаления таблицы вид или хранимая процедура больше не могут использоваться.

Синтаксис

DROP TABLE [ IF EXISTS ] [ database_name . [ schema_name ] . | schema_name . ]
table_name [ ,...n ] [ ; ]
  • IF EXISTS - отбрасывать таблицу только в том случае, если существует
  • database_name - указать имя базы данных, в которой содержится таблица
  • schema_name - schema_name имя схемы, в которой находится таблица
  • table_name - указать имя таблицы, подлежащей удалению.

Примеры

Удалите таблицу с именем TABLE_1 из текущей базы данных и стандартной схемой dbo

DROP TABLE Table_1;

Удалите таблицу с TABLE_1 из базы данных HR и схемы по умолчанию dbo

DROP TABLE HR.Table_1;

Удалите таблицу с TABLE_1 из базы данных HR и внешней схемы

DROP TABLE HR.external.TABLE_1;

Падение баз данных

Команда DROP DATABASE удаляет каталог базы данных независимо от ее состояния (офлайн, только для чтения, подозреваемого и т. Д.) Из текущего экземпляра SQL Server.

База данных не может быть удалена, если с ней связаны снимки базы данных, так как сначала снижаются снимки базы данных.

Падение базы данных удаляет все файлы физического диска (если он не отключен), используемый базой данных, если вы не используете хранимую процедуру sp_detach_db.

Снимок моментального снимка базы данных удаляет моментальный снимок из экземпляра SQL Server и удаляет физические файлы, также используемые им.

Отбрасываемая база данных может быть восстановлена ​​только путем восстановления резервной копии (а не из моментального снимка базы данных).

Синтаксис

DROP DATABASE [ IF EXISTS ] { database_name | database_snapshot_name } [ ,...n ] [;]  
  • IF EXISTS - отбрасывать таблицу только в том случае, если существует
  • database_name - указывает имя базы данных, которое нужно удалить.
  • database_snapshot_name - указывает снимок базы данных для удаления

Примеры

Удалите одну базу данных;

DROP DATABASE Database1;

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

DROP DATABASE Database1, Database2;

Удаление моментального снимка

DROP DATABASE Database1_snapshot17;

Удаление, если база данных существует

DROP DATABASE IF EXISTS Database1;

Падение временных таблиц

В SQL-сервере у нас есть 2 типа временных таблиц:

  1. ##GlobalTempTable - это тип временной таблицы, которая просматривается между всеми сеансами пользователя.
  2. #LocalTempTable temp tab - это тип временной таблицы, которая существует только в текущей области (только в реальном процессе - вы можете получить идентификатор вашего текущего процесса с помощью SELECT @@SPID )

Процесс разворачивания временных таблиц такой же, как и для обычной таблицы:

DROP TABLE [ database_name . [ schema_name ] . | schema_name . ] table_name   

ПЕРЕД SQL Server 2016:

IF(OBJECT_ID('tempdb..#TempTable') is not null)
    DROP TABLE #TempTable;

SQL Server 2016:

DROP TABLE IF EXISTS #TempTable


Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow