Quando navego em DBA-Reactions, entendo quase todos os .gifs, mas com este tenho problemas:
https://twitter.com/DBAReactions/status/613840893322338304
Quero dizer, truncar obviamente não cria o log de transações como uma exclusão em lote, mas ainda há casos em que você tem certeza de que pode simplesmente truncar uma tabela completa. Existem outras preocupações além disso? Então, basicamente, eu adoraria entender a diferença completa.
Existem certas circunstâncias em que você não pode usar o comando TRUNCATE TABLE e deve usar o comando DELETE.
Há uma boa explicação no MSDN:
https://msdn.microsoft.com/en-gb/library/ms177570.aspx
Além disso, veja esta pergunta no Stack Overflow, que tem uma longa discussão sobre o assunto.
Como você disse, truncar não usa os recursos de log de transações que um DELETE usaria. TRUNCATE não é tecnicamente classificado como uma operação minimamente registrada, mas é registrado com muita eficiência, pois apenas desaloca as páginas e extensões relevantes para os dados. Nada de errado com TRUNCATE, é registrado, você pode reverter e é rápido.
Lembre-se de que TRUNCATE não acionará gatilhos, se você precisar disparar gatilhos, precisará usar DELETE em lotes gerenciáveis para reduzir o bloqueio, etc.