【发布时间】:2011-08-05 06:47:16
【问题描述】:
我需要实现从一个数据库读取数据并在另外两个数据库(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 的提交/回滚事务
在源数据库中将记录标记为导出。
提交事务。
【问题讨论】:
-
db1事务成功,db2事务失败如何处理?