我想在Server1.DB1中执行一个存储过程,这个存储过程将在另一个使用动态SQL的存储过程中执行,它将在Server1.DB2中执行。
我需要使用begin/end transaction来确保所有东西都执行了,否则所有东西都失败了。
问题是:在这种情况下,使用指向不同数据库的动态SQL,事务可以工作吗?
喜欢
BEGIN TRANSACT
--Set Status to "In Progress"
SET @Qry = N'EXEC '+ @DB2 + '.[dbo].[StatusUpdate] @Id, @Status
我有一个包含两个数据库的Spring应用程序:一个用于Spring元数据的SQL,另一个是存储所有业务数据的MongoDB。关系数据库仍然使用DataSourceTransactionManager。但是,我认为Mongo写的东西并不是在带有回滚的活动事务中完成的。以下是 on MongoItemWriter的摘录
使用Spring的ItemWriter实现向MongoDB存储写入的一种MongoOperations实现。由于MongoDB不是一个事务性存储,所以在最后一刻尽力持久化书面数据,但仍然遵守作业状态合同。如果写入过程中发生错误,则不尝试回滚。
然而,这种情况不再是这样了;,