我想以并行方式和事务方式在不同的表上运行一组不同的命令,我该怎么做?
更多详情:
我希望所有命令都通过线程分布,但是在单个事务中,所以如果所有线程都成功,我将提交其他回滚。
答案 0 :(得分:6)
将TransactionScope-class与DependentTransactions一起使用。请参阅http://msdn.microsoft.com/en-us/library/system.transactions.transactionscope.aspx和http://msdn.microsoft.com/en-us/library/system.transactions.dependenttransaction.aspx。
这最有可能使用DTC,因此请确保您也能快速使用DTC。
答案 1 :(得分:1)
典型的数据库连接无法处理多线程用法,因此您不应尝试这样做。
相反,您可以查看DTC,它允许多个数据库连接在单个事务中进行协作。它带来了一些开销,所以你应该看看你是否真的得到了你想要的多线程好处。
答案 2 :(得分:0)
我想要运行一组不同的 在不同的表上的命令 并行和交易方式, 我怎么能这样做?
从线程#1:打开连接,启动事务,发出命令,提交事务。
从线程#2:打开连接,启动事务,发出命令,提交事务