2010-12-07 2 views
1

J'essaie d'accéder à des données de deux bases de données différentes à l'intérieur d'une transactioncope. Mais lors de l'exécution d'une requête sur la deuxième base de données, j'obtiens "L'opération n'est pas valide pour l'état de la transaction." erreurComment puis-je gérer les connexions à différentes bases de données à l'intérieur d'une même portée de transaction

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

Les deux bases de données existent sur le même serveur.

Répondre

1

Sur SQL Server 2005, je pense que cela nécessitera un DTC (Distributed Transaction Coordinator) pour être actif sur toutes les machines. Les deux connexions différentes feront que la transaction sera promue de locale à distribuée.

Apparemment, cela est résolu sur SQL Server 2008: TransactionScope automatically escalating to MSDTC on some machines? Quelle version de SQL Server utilisez-vous?

voir A ConnectionScope class

Common Gotchas when using TransactionScope and MS DTC

+0

SQLServer 2005 .. – Novice

+0

Ce sera la racine du problème ... –

Questions connexes