Accessing and Changing Relational Data
Transact-SQL Statements Allowed in Transactions
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.