2010-12-07 16 views
1

Ich versuche, auf Daten aus zwei verschiedenen Datenbanken innerhalb eines Transaktionsbereichs zugreifen. Aber während der Ausführung einer Abfrage für die zweite Datenbank, bekomme ich "Die Operation ist nicht gültig für den Status der Transaktion." FehlerWie kann ich Verbindungen zu verschiedenen Datenbanken innerhalb eines Transaktionsbereichs verwalten?

using(TransactionScope scope=new TransactionScope()) 
{ 
    Insert();//Inserts to database A 
    Select();//Selects from database B - error while executing this statement 
} 

Beide Datenbanken existieren auf demselben Server.

Antwort

1

Auf SQL Server 2005 denke ich, dass ein DTC (Distributed Transaction Coordinator) auf allen Computern aktiv sein muss. Die zwei verschiedenen Verbindungen führen dazu, dass die Transaktion von lokal auf verteilt hochgestuft wird.

Offenbar ist das auf SQL Server 2008 behoben: TransactionScope automatically escalating to MSDTC on some machines? Welche Version von SQL Server verwenden Sie?

siehe A ConnectionScope class

Common Gotchas when using TransactionScope and MS DTC

+0

SQL Server 2005 .. – Novice

+0

, dass die Wurzel des Problems sein wird ... –