Использование координатора распределенных транзакции Майкрософт (ODBC)

Применимо к:SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure Azure Synapse Analytics AnalyticsPlatform System (PDW)

Обновление двух или нескольких экземпляров SQL Server с помощью MS DTC

  1. Подключитесь к координатору распределенных транзакций (MS DTC), используя функцию DtcGetTransactionManager MS DTC OLE. Дополнительные сведения о координаторе распределенных транзакций (MS DTC) см. в разделе «Координатор распределенных транзакций (Майкрософт)».

  2. Вызовите драйвер SQL Подключение один раз для каждого подключения к SQL Server, которое требуется установить.

  3. Вызовите функцию MS DTC OLE ITransactionDispenser::BeginTransaction, чтобы начать транзакцию координатора распределенных транзакций (MS DTC) и получить объект Transaction, представляющий транзакцию.

  4. Вызовите функцию SQLSetConnectAttr один или несколько раз для каждого из соединений ODBC, которые необходимо прикрепить к транзакции MS DTC. Второй параметр SQLSetConnectAttr должен иметь значение SQL_ATTR_ENLIST_IN_DTC, а третий параметр должен быть объектом Transaction (полученным на шаге 3).

  5. Вызовите SQLExecDirect по одному разу для каждого экземпляра SQL Server, который нужно обновить.

  6. Вызовите функцию 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 способом.

См. также

Выполнение транзакций (ODBC)