Иногда в SQL Server у нас есть временная таблица импорта («Импорт») с большим количеством столбцов, а другая таблица («Производство») также с большим количеством столбцов, а многие столбцы имеют одинаковые имена (но не все), и нам просто нужно записать значения столбцов с одинаковыми именами из одного в другой (без их обработки).Одна и та же база данных, столбцы с одинаковыми именами в обеих таблицах имеют одинаковые типы.
Обычно мы делаем это так:
// Lots and lots of columns copied without processing
Production.ColumnA = Import.ColumnA;
Production.ColumnB = Import.ColumnB;
Production.ColumnC = Import.ColumnC;
// [...]
// Some with processing
Production.ColumnQ1 = DoSomething(Import.ColumnQ2);
Это раздражает и как-то излишне, если имеется много столбцов.Как лучше всего автоматически скопировать эти столбцы с одинаковыми именами, как в этом псевдокоде :
foreach(var importRow in ImportRows)
foreach(Column col in Production.Columns)
if(Import.Columns.Contains(col.Name)) newProductionRow[col] = importRow[col];
(Очень похоже на то, что можно сделать, используя DataTables с индексами, номы не хотим этого здесь.)