我们在天蓝云服务上的应用, 我们需要使用相同的事务(插入和SqlBulkCopy)在sql azure上执行一些操作,使用ReliableSqlConnection来允许Transaction.Rollback如果任何步骤失败
但运行此代码: using(SqlBulkCopy ContactsDistBulkCopy = new SqlBulkCopy(oConnection,SqlBulkCopyOptions.KeepIdentity,oTransaction))
请求system.data.connection而不是ReliableSqlConnection?
答案 0 :(得分:1)
你在Bulk传递了多少数据?您可以使用表值参数方法而不是批量复制,这很容易包含在事务中。您在客户端上汇编的表将作为参数非常快速地发送到SQL,并且在服务器上使用BULK优化执行插入。这适用于~O(10000)行。这将适用于ReliableSQLConnection框架,只要您使用rsc.ExecuteCommand样式调用该命令。
您可以在以下网址找到更多详情 http://msdn.microsoft.com/en-us/library/bb510489.aspx
答案 1 :(得分:0)
SqlBulkCopy
仅支持SqlConnection
。这种批量插入机制只需要SQL Server即可运行。它无法与任意数据库连接一起使用。