You can use all Transact-SQL statements in a transaction, except for the following statements:
| ALTER DATABASE | LOAD DATABASE |
| BACKUP LOG | LOAD TRANSACTION |
| CREATE DATABASE | RECONFIGURE |
| DISK INIT | RESTORE DATABASE |
| DROP DATABASE | RESTORE LOG |
| DUMP 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.