Microsoft® SQL Server™ allows you to create links to OLE DB data sources called linked servers. After linking to an OLE DB data source, you can:
Each distributed query can reference multiple linked servers and can perform either update or read operations against each individual linked server. A single distributed query can perform read operations against some linked servers and update operations against other linked servers. In general, Microsoft SQL Server requires distributed transactions support from the corresponding OLE DB provider whenever data from more than one linked server are likely to be updated in a transaction. Hence, the types of queries that are supported against linked servers depend on the level of support for transactions present in the OLE DB providers. OLE DB defines two optional interfaces for transaction management:
Any provider that supports ITransactionJoin also supports ITransactionLocal.
If a distributed query is executed when the connection is in autocommit mode, these rules apply:
The controlling SQL Server automatically calls ITransactionLocal in each linked server participating in an update operation to start a local transaction, and commits them when the statement succeeds or rolls them back if the statement fails.
If a distributed query is against a distributed partitioned view or if it is executed when the connection is in either an explicit or implicit transaction, these rules apply:
The above rules imply the following restriction for providers that do not support nested transaction: update operations are allowed in a distributed transaction only if the XACT_ABORT option is ON.