【问题标题】:add column while copying data in sql在sql中复制数据时添加列
【发布时间】:2010-02-01 20:00:46
【问题描述】:

我正在使用 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。

【问题讨论】:

    标签: sql sql-server-2008 sqldatareader sqlbulkcopy


    【解决方案1】:

    您可以添加它以由您的 SELECT 返回:

    SELECT *, GETDATE() AS CurrentDate from dbo.source
    

    然后只需为其添加另一个 ColumnMapping。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-09-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-16
      • 1970-01-01
      • 2021-12-20
      • 2023-04-09
      相关资源
      最近更新 更多