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

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

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

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

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

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

DROP TABLE (Transact-SQL)

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

ALTER TABLE (Transact-SQL)

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

TRUNCATE TABLE (Transact-SQL)

См. также

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