Удаление таблицы

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

Если нужно удалить таблицы, связанные посредством ограничений FOREIGN KEY и UNIQUE либо PRIMARY KEY, сначала необходимо удалить таблицы с ограничениями FOREIGN KEY. Если нужно удалить таблицу, на которую ссылается ограничение FOREIGN KEY, но удалить всю таблицу с внешним ключом невозможно, необходимо удалить ограничение FOREIGN KEY.

Если нужно удалить все данные из таблицы, но не саму таблицу, можно выполнить ее усечение. Дополнительные сведения см. в разделе Удаление всех строк с помощью инструкции TRUNCATE TABLE.

В SQL Server 2005 можно удалять или выполнять усечение больших таблиц и индексов, которые используют более чем 128 экстентов, без удержания одновременной блокировки всех кластеров страниц, необходимых для удаления. Компонент SQL Server 2005 Database Engine удаляет большие объекты за две различные фазы: логическую и физическую. В логической фазе существующие единицы размещения, используемые таблицей, помечаются для освобождения и остаются заблокированными до фиксации транзакции. В физической фазе единицы размещения, помеченные для освобождения, физически удаляются пакетами. Дополнительные сведения см. в разделе Удаление и повторная сборка больших объектов.

Удаление таблицы

DROP TABLE (Transact-SQL)

Удаление ограничения FOREIGN KEY

ALTER TABLE (Transact-SQL)

Усечение таблицы

TRUNCATE TABLE (Transact-SQL)

См. также

Другие ресурсы

Создание и изменение таблиц

Справка и поддержка

Получение помощи по SQL Server 2005