Microsoft® SQL Server™ supports transaction-based access to external data using the ITransactionLocal (local transaction) and ITransactionJoin (distributed transactions) OLE DB interfaces. Using distributed transactions, SQL Server ensures that a transaction involving multiple nodes is either committed or rolled back in all the nodes. If the provider does not support participating in a distributed transaction (the provider does not support ITransactionJoin), then only read-only operations are allowed against that provider when inside an implicit or explicit transaction.
When a disallowed statement is encountered, the statement returns an error message and the user transaction, if any, terminates execution.