【发布时间】:2014-03-29 04:43:19
【问题描述】:
我的目标是将通用表从一个数据库复制到另一个数据库。我想让它按原样复制数据,如果有新列,可以删除表中的任何内容或添加新列。我可能想要更改的唯一一件事是添加一些可以在查询的单独部分中完成的版本控制。
打开数据没问题,但是当我尝试批量复制时却失败了。我浏览了几篇文章,最接近的是这篇文章: SqlBulkCopy Insert with Identity Column
我从我的代码中删除了 SqlBulkCopyOptions.KeepIdentity 但它仍然在抛出
“给定的 ColumnMapping 与源或目标中的任何列都不匹配”错误
我尝试过使用 SqlBulkCopyOptions,但到目前为止没有运气。
想法?
public void BatchBulkCopy(string connectionString, DataTable dataTable, string DestinationTbl, int batchSize)
{
// Get the DataTable
DataTable dtInsertRows = dataTable;
using (SqlBulkCopy sbc = new SqlBulkCopy(connectionString))
{
sbc.DestinationTableName = DestinationTbl;
// Number of records to be processed in one go
sbc.BatchSize = batchSize;
// Finally write to server
sbc.WriteToServer(dtInsertRows);
}
}
【问题讨论】:
标签: c# sql datatable sqlbulkcopy