You can use all Transact-SQL statements in a transaction, except for the following statements:
| ALTER DATABASE | DROP DATABASE | RECONFIGURE |
| BACKUP LOG | DUMP TRANSACTION | RESTORE DATABASE |
| CREATE DATABASE | LOAD DATABASE | RESTORE LOG |
| DISK INIT | LOAD TRANSACTION | UPDATE STATISTICS |
Also, you cannot use sp_dboption to set database options or use any system procedures that modify the master database inside user-defined transactions.