DELETE удаляет строки с WHERE, логирует построчно, triggers fire. TRUNCATE снимает все строки таблицы быстро (deallocate extents), minimal row logging.
Разбор
- TRUNCATE нельзя при FK reference (обычно).
- DELETE можно partial; TRUNCATE — all-or-nothing table clear.
- TRUNCATE reset identity (SQL Server); DELETE — нет.
- TRUNCATE — DDL-like; права могут отличаться.
Итог
DELETE = row-level + WHERE; TRUNCATE = fast full table wipe.