2013-07-04 5 views

Antwort

27

Eine Transaktion über mehrere DBs im gleichen Beispiel ist eine lokale Transaktion. BEGIN TRANSACTION wird gut funktionieren.

+0

ist MSDTC-Dienst für diese Art von Transaktion erforderlich? Wird diese Transaktion eine verteilte Transaktion sein? – Entrodus

+1

@Entrodus DTC ist nicht beteiligt. http://stackoverflow.com/questions/23976740/distributed-database-transaction-vs-cross-database-transaction –

+3

Eine kleine Anmerkung aus der offiziellen Dokumentation: Eine Transaktion innerhalb einer einzigen Instanz des Datenbankmoduls, die zwei oder mehr Datenbanken umfasst eigentlich eine verteilte Transaktion. Die Instanz verwaltet die verteilte Transaktion intern; für den Benutzer funktioniert es als lokale> Transaktion. ' https://technet.microsoft.com/en-us/library/ms191440(v=sql.105).aspx – Deniz

3

Nur getestet. BEGIN TRANSACTION funktioniert wie erwartet über zwei Datenbanken auf demselben Server.

-3

SQL Server-Dokumentation ist klar darüber, wie eine verteilte Transaktion gestartet wird.

BEGIN DISTRIBUTED TRANSACTION

+0

Die verteilte Transaktion ist nur für Datenbanken in verschiedenen Instanzen erforderlich, die über Verbindungsserver miteinander verbunden sind. Wenn sich beide Datenbanken in derselben Sql Server-Instanz befinden, reicht BEGIN TRANSACTION aus. – harsimranb

Verwandte Themen