Использование координатора распределенных транзакции Майкрософт (ODBC)
Применимо: SQL Server
База данных SQL Azure Управляемый экземпляр SQL Azure
azure Synapse Analytics Analytics
Platform System (PDW)
Обновление двух или нескольких экземпляров SQL Server с помощью MS DTC
Подключитесь к координатору распределенных транзакций (MS DTC), используя функцию DtcGetTransactionManager MS DTC OLE. Дополнительные сведения о координаторе распределенных транзакций (MS DTC) см. в разделе «Координатор распределенных транзакций (Майкрософт)».
Вызовите SQL DriverConnect один раз для каждого подключения к SQL Server, которое требуется установить.
Вызовите функцию MS DTC OLE ITransactionDispenser::BeginTransaction, чтобы начать транзакцию координатора распределенных транзакций (MS DTC) и получить объект Transaction, представляющий транзакцию.
Вызовите функцию SQLSetConnectAttr один или несколько раз для каждого из соединений ODBC, которые необходимо прикрепить к транзакции MS DTC. Второй параметр SQLSetConnectAttr должен иметь значение SQL_ATTR_ENLIST_IN_DTC, а третий параметр должен быть объектом Transaction (полученным на шаге 3).
Вызовите SQLExecDirect по одному разу для каждого экземпляра SQL Server, который нужно обновить.
Вызовите функцию MS DTC OLE ITransaction::Commit, чтобы зафиксировать транзакцию MS DTC. Объект Transaction более не действителен.
Чтобы выполнить ряд транзакций MS DTC, повторите шаги с 3 по 6.
Чтобы освободить ссылку на объект Transaction, вызовите функцию MS DTC OLE ITransaction::Return.
Чтобы использовать соединение ODBC с транзакцией распределенного координатора транзакций (MS DTC), а затем использовать то же соединение с транзакцией локального SQL Server, вызовите функцию SQLSetConnectAttr с параметром SQL_DTC_DONE.
Примечание.
Можно также вызывать SQLSetConnectAttr и SQLExecDirect по очереди для каждого экземпляра SQL Server, а не вызывать их описанным выше в шагах 4 и 5 способом.