Удаление данных

Завершено

Как инструкция INSERT всегда добавляет в таблицу целые строки, инструкция DELETE всегда удаляет целые строки.

Использование инструкции DELETE для удаления определенных строк

DELETE работает с набором строк, которые определяются условием в предложении WHERE либо определенные которых происходит в объединении. Предложение WHERE в инструкции DELETE имеет ту же структуру, что и предложение WHERE в инструкции SELECT.

Примечание.

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

В следующем коде показан базовый синтаксис инструкции DELETE:

DELETE [FROM] <TableName>
WHERE <search_conditions>;

В следующем примере инструкция DELETE используется для удаления из указанной таблицы всех снятых с продажи продуктов. В таблице есть столбец discontinued (снято с продажи), и для продуктов, которые больше не доступны, этот столбец имеет значение 1.

DELETE FROM Production.Product
WHERE discontinued = 1;

Удаление всех строк с помощью TRUNCATE TABLE

DELETE без предложения WHERE удаляет все строки из таблицы. По этой причине DELETE обычно используется условно с фильтром в предложении WHERE. Если вам действительно нужно удалить все строки и оставить таблицу пустой, можно использовать инструкцию TRUNCATE TABLE. Эта инструкция не разрешает предложение WHERE и всегда удаляет все строки во время одной операции. Ниже приведен пример.

TRUNCATE TABLE Sales.Sample;

Если вам нужно удалить все строки, использование инструкции TRUNCATE TABLE будет более эффективным, чем использование DELETE.