As diferenças entre TRUNCATE e DELETE:
1 – TRUNCATE é um comando DDL enquanto DELETE é um comando DML.
2 – TRUNCATE é muito mais rápido do que o DELETE.
Motivo: Quando você digita DELETE todos os dados a serem excluídos são copiados primeiro para Tablespace de UNDO.
3 – Não existe Rollback para o comando TRUNCATE mas para o DELETE sim. O comando TRUNCATE remove o registro permanente.
4 – Em caso de TRUNCATE, A TRIGGER não é disparada, mas no caso do comando DELETE, existindo TRIGGER para deleção a mesma é disparada.
5 – Você não pode usar condições (cláusula WHERE) com o comando TRUNCATE. Mas com o comando DELETE, você pode escrever usando condições (cláusula WHERE).
Fonte:https://sergioleitaodba.wordpress.com/2014/10/20/sql-diferenca-entre-os-comandos-truncate-delete-e-drop/