【问题标题】:How to maintain transactions in two different databases如何在两个不同的数据库中维护事务
【发布时间】:2011-06-06 07:28:09
【问题描述】:

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

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

【问题讨论】:

    标签: asp.net


    【解决方案1】:

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

    TransactionScope 将在必要时将事务升级到 MSDTC。这方面的规则有些微妙。如果这两个数据库位于单个 SQL Server 2008 实例上,则不需要 MSDTC。

    另见:

    【讨论】:

      【解决方案2】:

      您可以使用TransactionScope 类:

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

      【讨论】:

        猜你喜欢
        • 2019-09-02
        • 1970-01-01
        • 2015-09-07
        • 2013-05-12
        • 1970-01-01
        • 2010-10-14
        • 1970-01-01
        • 2014-03-12
        • 1970-01-01
        相关资源
        最近更新 更多