[英]ADO.NET and working with different db
我需要实现从一个数据库读取数据并在其他两个数据库(Db2和Db3)中插入/更新数据。 所有数据库都是SQL Server。
现在,我使用下一个场景:
打开连接并为我的源数据库启动事务。
1.1打开连接并开始Db2的事务
1.2插入/更新记录。
1.3提交/回滚事务
2.1打开连接并开始Db3的事务
2.2插入/更新记录。
2.3提交/回滚事务
在源数据库中将记录标记为已导出。
提交交易。
一切正常。 但是,如果我在1.2或2.2步骤中有异常,则当前事务将回滚,但其他步骤中的事务将保持提交状态。
如果步骤(1.2或2.2)例外,步骤1.3和2.3也将回滚,我该如何实现方案?
我无法对Db2和Db3使用一项交易,因为我有例外
事务与当前连接不关联或已完成。
有任何想法吗?
谢谢,
更新:我解决了我的问题:现在我使用下一种情况:
打开连接并为我的源数据库启动事务。
1.1打开连接并开始Db1的事务
1.2打开连接并开始Db2的交易
1.3在DB1中插入/更新
1.4在DB2中插入/更新
1.5 Db1的提交/回滚事务
1.6 Db2的提交/回滚事务
在源数据库中将记录标记为已导出。
提交交易。
您可以使用TransactionScope类与单个分布式事务中的多个数据库进行交互。
using (TransactionScope scope = new TransactionScope())
{
//put all logic here
scope.Complete();
}
这是另一个例子
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.