Eliminar dados

Concluído

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.