我正在使用 SqlBulkCopy 将一些记录从一个表批量插入到另一个表中。该查询使用 SqlDataReader 来获取数据。表之间重要的一个区别(除了在映射中处理的列顺序)是目标表有一个日期列,需要将当前日期添加到该列中。此日期不在源表中。我怎样才能将它添加到当前工作正常的进程中减去这个?
当前的工作代码如下所示:
SqlCommand cmd = new SqlCommand("SELECT * from dbo.source", cn);
SqlDataReader rdr = cmd.ExecuteReader();
using (SqlBulkCopy copy = new SqlBulkCopy(cn))
{
copy.ColumnMappings.Add(0, 0);
copy.ColumnMappings.Add(1, 2);
copy.ColumnMappings.Add(3, 3);
copy.ColumnMappings.Add(2, 4);
copy.ColumnMappings.Add(5, 5);
copy.ColumnMappings.Add(14, 6);
copy.DestinationTableName = "destination";
copy.WriteToServer(rdr);
}
数据库是 sql 2008 ENT。