【发布时间】:2010-10-21 05:42:26
【问题描述】:
我们在 CLR 过程中有一个内存数据表。经过大量处理后,DataTable 有很多数据需要加载到数据库中的表中。不幸的是,由于我们使用的是context connection SqlBulkCopy 将无法工作(抛出错误:请求的操作在上下文连接上不可用 outline of context restrictions)。
我们正在考虑建立一个额外的常规连接并使用它来执行 SQLBulkCopy。考虑到使用regular connection over a context connection 的开销,这似乎相当愚蠢。我们考虑过遍历 DataTable 中的行并为每个行插入一条记录,但它的大小很大,SQLBulkCopy 似乎更合适。
我们并没有与 DataTable 结婚,只是在寻找从 CLR 过程将大量数据插入数据库的最佳方法。关于 DataTable 的最后一点说明,它代表底层数据库表,但不通过 DataSet 或 TableAdapter 绑定到表。在 CLR 过程中这样做的方法并不是很明显。这样做并使用 AcceptChanges 或 Update 方法将是一个可接受的解决方案。
【问题讨论】:
标签: sql sql-server clr sqlclr sqlbulkcopy