Share via


Utiliser Microsoft Distributed Transaction Coordinator (ODBC)

S’applique à :SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

Pour mettre à jour deux instances SQL Server ou plus à l’aide de MS DTC

  1. Connectez-vous à MS DTC en utilisant la fonction MS DTC OLE DtcGetTransactionManager. Pour plus d'informations sur MS DTC, consultez Microsoft Distributed Transaction Coordinator.

  2. Appelez SQL Driver Connecter une fois pour chaque connexion SQL Server que vous souhaitez établir.

  3. Appelez la fonction MS DTC OLE ITransactionDispenser::BeginTransaction pour commencer une transaction MS DTC et obtenir un objet Transaction qui représente la transaction.

  4. Appelez SQLSetConnectAttr une ou plusieurs fois pour chaque connexion ODBC que vous souhaitez inscrire dans la transaction MS DTC. Le deuxième paramètre SQLSetConnectAttr doit être SQL_ATTR_ENLIST_IN_DTC et le troisième paramètre doit être l’objet Transaction (obtenu à l’Étape 3).

  5. Appelez SQLExecDirect une fois pour chaque serveur SQL Server à mettre à jour.

  6. Appelez la fonction MS DTC OLE ITransaction::Commit pour valider la transaction MS DTC. L'objet Transaction n'est plus valide.

Pour effectuer une série de transactions MS DTC, répétez les Étapes 3 à 6.

Pour libérer la référence à l'objet Transaction, appelez la fonction MS DTC OLE ITransaction::Return.

Pour utiliser une connexion ODBC avec une transaction MS DTC, puis utiliser la même connexion avec une transaction SQL Server locale, appelez SQLSetConnectAttr avec SQL_DTC_DONE.

Remarque

Vous pouvez également appeler SQLSetConnectAttr puis SQLExecDirect pour chaque SQL Server au lieu de les appeler comme suggéré précédemment aux Étapes 4 et 5.

Voir aussi

Exécution de transactions (ODBC)