我有一个表,我想使用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)。
答案 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)将用于填充它。