Удаление данных
Как инструкция 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.