nel*_*ebs 4 sql sqldatareader sqlbulkcopy sql-server-2008
我正在使用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);
}
Run Code Online (Sandbox Code Playgroud)
DB是sql 2008 ENT.
您可以添加它以由SELECT返回:
SELECT *, GETDATE() AS CurrentDate from dbo.source
Run Code Online (Sandbox Code Playgroud)
然后为它添加另一个ColumnMapping.
| 归档时间: |
|
| 查看次数: |
520 次 |
| 最近记录: |