Delete vs Truncate
DELETE
The DELETE statement removes one or more rows from a table or view.
The DELETE statement is always fully logged.
The DELETE command fire triggers.
The DELETE command can be used with indexed views.
TRUNCATE
The TRUNCATE statement removes all rows from a table.
The TRUNCATE statement uses less transaction log space.
The TRUNCATE statement is faster and uses fewer system and transaction log resources.
The TRUNCATE command doesn't fire triggers.
You cannot use truncate statement on a table that has a foreign key that references itself.