• TRUNCATE TABLE is logged but in a different way than a normal DELETE.

    From BOL: "The DELETE statement removes rows one at a time and records an entry in the transaction log for each deleted row. TRUNCATE TABLE removes the data by deallocating the data pages used to store the table's data, and only the page deallocations are recorded in the transaction log."

    It is perfectly possible to rollback a truncate table. 

    create table test

    (f varchar(10))

    insert into test values ('truncate')

    insert into test values ('table')

    BEGIN TRAN

    TRUNCATE TABLE test

    SELECT * FROM test

    ROLLBACK TRAN

    SELECT * FROM test

    drop table test

    I also don't understand the 'invalidates transaction log' statement.  Could you elaborate this please?