If you have any foreign keys you cannot use truncate nor can you delete any rows that have "child" rows. For example if I have orders and order_details with a foreign key on order_id then I cannot delete any rows in orders that have rows in order_details so in my ssis package I would need to purge order_details, then orders, and then re-load orders and order_details.
Another option is to use a lookup and send the "error" rows (rows without a match) to the table and discard the other rows.