Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Applies to: 
 SQL Server 
 Azure SQL Database 
 Azure SQL Managed Instance 
 Azure Synapse Analytics 
 Analytics Platform System (PDW)
To update two or more SQL Server instances by using MS DTC
- Connect to MS DTC by using the MS DTC OLE DtcGetTransactionManager function. For information about MS DTC, see Microsoft Distributed Transaction Coordinator. 
- Call SQL DriverConnect once for each SQL Server connection you want to establish. 
- Call the MS DTC OLE ITransactionDispenser::BeginTransaction function to begin an MS DTC transaction and obtain a Transaction object that represents the transaction. 
- Call SQLSetConnectAttr one or more times for each ODBC connection you want to enlist in the MS DTC transaction. SQLSetConnectAttr second parameter must be SQL_ATTR_ENLIST_IN_DTC and third parameter must be the Transaction object (obtained in Step 3). 
- Call SQLExecDirect once for each SQL Server you want to update. 
- Call the MS DTC OLE ITransaction::Commit function to commit the MS DTC transaction. The Transaction object is no longer valid. 
To perform a series of MS DTC transactions, repeat Steps 3 through 6.
To release the reference to the Transaction object, call the MS DTC OLE ITransaction::Return function.
To use an ODBC connection with an MS DTC transaction, and then use the same connection with a local SQL Server transaction, call SQLSetConnectAttr with SQL_DTC_DONE.
Note
You can also call SQLSetConnectAttr and SQLExecDirect in turn for each SQL Server instead of calling them as suggested earlier in Steps 4 and 5.