W SQL Server można wycofać TRUNCATE z transakcji. Jak wspomniałeś, zapisuje dealokację stron do dziennika.