4

SqlBulkCopyを使用して、あるテーブルから別のテーブルにいくつかのレコードを一括挿入しています。クエリはSqlDataReaderを使用してデータを取得しています。テーブル間で重要な(マッピングで処理される列の順序以外の)1つの違いは、宛先テーブルに現在の日付を追加する必要がある日付列があることです。この日付はソーステーブルにありません。これを差し引いて正常に動作している現在のプロセスにこれを追加するにはどうすればよいですか?

現在動作しているコードは次のようになります。

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);
            }

DBはsql2008ENTです。

4

1 に答える 1

6

SELECTから返されるように追加するだけです。

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

次に、別のColumnMappingを追加します。

于 2010-02-01T20:03:10.727 に答える