MS SQL:
The concept that a Truncate statement cannot be rolled back is fairly commonly misunderstood.
When you execute a Truncate statement, it does not get logged in the log file as it is a DDL statement.
So if you Truncate a table, you cannot Roll Back to a point in time before the truncate.
However, in a Transaction, Rollback is permitted and functions just as any other rollback would.
The rollback referred to is not transactional rollback.
In essence: Anywhere before a COMMIT is issued, you can rollback a TRUNCATE statement. After a COMMIT, you cannot rollback the data even by using the log file. Unrecoverable.