• I have lots of dts packages like this, I use an 'Execute SQL Task' to do a select on the source table (using a single key) and only execute the truncate if it is successful.

    If you want to fully protect against any data loss (ie lost connection during data transformation) then Jonathan's solution of using a staging table is best.

    I think you can set the transaction level for DTS to make the whole package one tranaction (but you have to delete rather than truncate the table), but I am not sure.

    Far away is close at hand in the images of elsewhere.
    Anon.