Eliminar dados
Assim como a instrução INSERT sempre adiciona linhas inteiras a uma tabela, a instrução DELETE sempre remove linhas inteiras.
Use DELETE para remover linhas específicas
DELETE opera num conjunto de linhas, definidas por uma condição numa cláusula WHERE ou definidas numa união. A cláusula WHERE em uma instrução DELETE tem a mesma estrutura que uma cláusula WHERE em uma instrução SELECT.
Nota
É importante ter em mente que um DELETE sem uma cláusula WHERE correspondente removerá todas as linhas de uma tabela. Use a instrução DELETE com cuidado.
O código a seguir mostra a sintaxe básica da instrução DELETE:
DELETE [FROM] <TableName>
WHERE <search_conditions>;
O exemplo a seguir usa a instrução DELETE para remover todos os produtos da tabela especificada que foram descontinuados. Há uma coluna na tabela chamada descontinuado e, para produtos que não estão mais disponíveis, a coluna tem o valor 1.
DELETE FROM Production.Product
WHERE discontinued = 1;
Use TRUNCATE TABLE para remover todas as linhas
DELETE sem uma cláusula WHERE elimina todas as linhas de uma tabela. Por esta razão, DELETE é geralmente usado condicionalmente, com um filtro na cláusula WHERE. Se você realmente quiser remover todas as linhas e deixar uma tabela vazia, você pode usar a instrução TRUNCATE TABLE. Esta instrução não permite a utilização de uma cláusula WHERE e remove sempre todas as linhas de uma só vez. Veja o exemplo a seguir:
TRUNCATE TABLE Sales.Sample;
TRUNCATE TABLE é mais eficiente do que DELETE quando você deseja remover todas as linhas.