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. |