добавить столбец при копировании данных в sql

Я использую 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.


person nelsonwebs    schedule 01.02.2010    source источник


Ответы (1)


Вы можете просто добавить его, чтобы он возвращался вашим SELECT:

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

А затем просто добавьте для него еще одно сопоставление столбцов.

person AdaTheDev    schedule 01.02.2010