• No, pretty much everything that happens within the scope of an individual database is part of the transaction and can be rolled back, including DDL and indeed TRUNCATE (another transaction myth).

    Have a look here for T-SQL Statements that are not allowed within a transaction:

    http://msdn.microsoft.com/en-us/library/ms191544.aspx