Freigeben über


Verwenden von Microsoft Distributed Transaction Coordinator (ODBC)

Gilt für: SQL Server Azure SQL-Datenbank Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)

So aktualisieren Sie zwei oder mehr SQL Server-Instanzen mithilfe von MS DTC

  1. Stellen Sie mit der MS DTC OLE-Funktion DtcGetTransactionManager eine Verbindung mit MS DTC her. Informationen zu MS DTC finden Sie unter Microsoft Distributed Transaction Coordinator.

  2. Rufen Sie SQL DriverConnect einmal für jede SQL Server-Verbindung auf, die Sie einrichten möchten.

  3. Rufen Sie die MS DTC OLE-Funktion ITransactionDispenser::BeginTransaction auf, um eine MS DTC-Transaktion zu starten und ein Transaction-Objekt zu erhalten, das diese Transaktion repräsentiert.

  4. Rufen Sie SQLSetConnectAttr mindestens einmal für jede ODBC-Verbindung auf, die Sie in der MS DTC-Transaktion auflisten möchten. Der zweite SQLSetConnectAttr-Parameter muss SQL_ATTR_ENLIST_IN_DTC lauten, und der dritte Parameter muss das Transaktionsobjekt (aus Schritt 3) sein.

  5. Rufen Sie SQLExecDirect einmal für jeden SQL Server auf, den Sie aktualisieren möchten.

  6. Rufen Sie MS DTC OLE-Funktion ITransaction::Commit auf, um ein Commit für die MS DTC-Transaktion auszuführen. Das Transaction-Objekt ist nicht mehr gültig.

Um eine Reihe von MS DTC-Transaktionen auszuführen, wiederholen Sie die Schritte 3 bis 6.

Um den Verweis auf das Transaction-Objekt freizugeben, rufen Sie die MS DTC OLE-Funktion ITransaction::Return auf.

Wenn Sie eine ODBC-Verbindung mit einer MS DTC-Transaktion und dieselbe Verbindung dann mit einer lokalen SQL Server-Transaktion verwenden möchten, rufen Sie SQLSetConnectAttr mit SQL_DTC_DONE auf.

Hinweis

Sie können SQLSetConnectAttr und SQLExecDirect auch nacheinander für jeden SQL Server aufrufen, statt sie gemäß dem Vorschlag in den Schritten 4 und 5 aufzurufen.

Weitere Informationen

Durchführen von Transaktionen (ODBC)