DELETE is an operation on a per row basis. TRUNCATE deallocates data pages which makes TRUNCATE a faster operation to perform over DELETE. You cannot TRUNCATE a table that has any foreign key constraints. You will have to remove the contraints, TRUNCATE the table, and reapply the contraints. Also truncate is a DDL command operation.
The Main Difference Between DELETE & TRUNCATE Are :- [1] DELETE - is a DML Command & TRUNCATE - is a DDL Command [2] After DELETE - can rollback the Records & After TRUNATE - cannot rollback the records [3] In DELETE Command you can give the conditions in WHERE Clause & In TRUNCATE you cannot give conditions [4] After using DELETE Command The memory will be occupied till the user does not give ROLLBACK or COMMIT & After using TRUNCATE Command The memory realeased immediately