Excluir dados

Concluído

Assim como a instrução INSERT sempre adiciona linhas inteiras a uma tabela, a instrução DELETE sempre remove as linhas inteiras.

Use DELETE para remover linhas específicas.

DELETE opera em um conjunto de linhas, definido por uma condição em uma cláusula WHERE ou definido em uma junção. A cláusula WHERE em uma instrução DELETE tem a mesma estrutura que uma cláusula WHERE em uma instrução SELECT.

Observação

É importante ter em mente que uma instrução 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 valor de 1.

DELETE FROM Production.Product
WHERE discontinued = 1;

Use TRUNCATE TABLE para remover todas as linhas

DELETE sem uma cláusula WHERE remove todas as linhas de uma tabela. Por esse motivo, DELETE geralmente é usado condicionalmente, com um filtro na cláusula WHERE. Se você realmente quiser remover todas as linhas e deixar uma tabela vazia, pode usar a instrução TRUNCATE TABLE. Essa instrução não permite uma cláusula WHERE e sempre remove todas as linhas em uma operação. Aqui está um exemplo:

TRUNCATE TABLE Sales.Sample;

TRUNCATE TABLE é mais eficiente do que DELETE quando você deseja remover todas as linhas.