SqlBulkCopy
異なる列のセットを持つ2つのSQLServer2008に対して使用しています(一部のデータをprod
サーバーからに移動しますdev
)。したがって、まだ存在していない/まだ削除されていない列をスキップしたい。
どうやってやるの?いくつかのトリックColumnMappings
?
編集:
次に行います:
DataTable table = new DataTable();
using (var adapter = new SqlDataAdapter(sourceCommand))
{
adapter.Fill(table);
}
table.Columns
.OfType<DataColumn>()
.ForEach(c => bulk.ColumnMappings.Add(
new SqlBulkCopyColumnMapping(c.ColumnName, c.ColumnName)));
bulk.WriteToServer(table)
そして取得:
指定されたColumnMappingは、ソースまたは宛先のどの列とも一致しません。