Diferenças entre DELETE e TRUNCATE

Quais as diferenças entre DELETE e TRUNCATE

O comando DELETE e o comando TRUNCATE ambos são usados para apagar dados de uma tabela e não a estrutura da tabela.

O comando DELETE remove as linhas de uma tabela e tem a seguinte sintaxe básica:

DELETE FROM SUATABELA WHERE CODIGO = 1;

Por outro lado, o comando TRUNCATE remove todas as linhas de uma tabela sem efetuar as exclusões de linhas individuais, e tem a seguinte sintaxe básica:

TRUNCATE TABLE SUATABELA;

Resumo das diferenças entre o comando DELETE e o comando TRUNCATE.

DELETE

TRUNCATE

A eliminação de cada linha é registrada e fisicamente excluída. Registro será feito pela desalocação de páginas de dados no qual os dados existe.
Permite a exclusão de linhas que não viole a restrição de chave estrangeira. Não permite que o comando TRUNCATE seja executado em uma tabela que é referenciada por uma restrição de chave estrangeira. A restrição de chave estrangeira precisa ser descartada em primeiro lugar, em seguida, truncar a tabela, e então recriar a restrição.
A coluna de identidade não retorna para o valor inicial, por exemplo, um. Redefine qualquer coluna de identidade na tabela truncada para o valor inicial.
Permite a exclusão condicional de linhas especificando a condição na cláusula WHERE. Exclui todas as linhas na tabela e não pode especificar uma deleção condicional de linhas.
O comando DELETE é uma linguagem de manipulação de dados (DML) de comando. O comando TRUNCATE é um Data Definition Language (DDL) de comando.