You are right that truncate is a DDL command.
TRUNCATE command works on table data not on table structure,It is used to delete all the rows from the table and free the space containing the table.
TRUNCATE command is used when you have to use that table again as if a table is dropped, all the relationships with other tables will no longer be valid, the integrity constraints will be dropped, grant or access privileges on the table will also be dropped, if want use the table again it has to be recreated with the integrity constraints, access privileges and the relationships with other tables should be established again. But, if a table is TRUNCATED, the table structure remains the same, therefore any of the above problems will not exist.
http://www.sqlserver-training.com/list-10-difference-between-truncate-delete-statement-in-sql-server/-[
^]