What is the difference between truncate and delete
What is the difference between TRUNCATE table and DELETE * FROM table? When should I use TRUNCATE and when should I use DELETE?
the first and most important is that TRUNCATE is faster!
both of them will empty your table. but "delete * from table" will be ready to commit after rows were merged and ready to rollback. in case of triggers or constraints, delete will hurt you more.
the delete triggers will take time also when you'll use delete. so ... once again, TRUNCATE is the better choice.
as for a transaction log ... also TRUNCATE rules.
when TRUNCATE is not good ? when you'll need to delete just a few rows from your table (ex: delete * from table where id<5 )