如何在两个不同的数据库中维护事务

时间:2011-06-06 07:28:10

标签: asp.net

我必须维护两个不同数据库之间的事务。如果Database1中发生任何错误,那么我需要回滚,然后database2中的所有更改都应该回滚。

我的web.config文件中有两个连接字符串。

2 个答案:

答案 0 :(得分:2)

答案取决于两个数据库服务器实例之间是否需要分布式事务,还是单个实例中两个数据库之间的事务。在第一种情况下,您需要一个像MSDTC这样的事务管理器,但在第二种情况下,数据库服务器应该能够自己完成这项工作。

如有必要,

TransactionScope会将交易升级为MSDTC。对此的规则有些微妙。如果这两个数据库位于单个SQL Server 2008实例上,则不应该使用MSDTC。

另见:

答案 1 :(得分:1)

您可以使用TransactionScope类:

using(var tx = new TransactionScope())
{
    // TODO: your DB queries here
    tx.Complete();
}