SqlBulkCopy启动索引?

时间:2014-11-10 20:30:43

标签: c# sql-server sqlbulkcopy

我有一个表,我想使用SqlBulkCopy复制到另一个表,但在我的目标表中我有一个ID。 像这样:

来源表

variable1, variable2, variable3, variable4

目的地表

ID, variable1, variable2, variable3, variable4

如何确保sqlbulkcopy从我的目标表中的索引1开始? 我发现的唯一工作是添加ID作为最后一个变量,如下所示:

目的地表(2)

variable1, variable2, variable3, variable4, ID

修改 从我对Christos的回答中可以看出,ID已经被设置为IDENTITY(1,1)。

1 个答案:

答案 0 :(得分:0)

如果源和目标中的模式不同,则需要提供column mappings。如果未定义映射,则根据序号位置隐式映射列。您可以添加如下映射:

using (SqlBulkCopy bulkCopy = new SqlBulkCopy(connectionString))
{
  bulkCopy.DestinationTableName = "destination_table";

  bulkCopy.ColumnMappings.Add("variable1", "variable1");
  bulkCopy.ColumnMappings.Add("variable2", "variable2");
  bulkCopy.ColumnMappings.Add("variable3", "variable3");

  // etc.

这样,目标中的ID列将被忽略,默认值(identity)将用于填充它。