【发布时间】:2012-01-17 16:20:19
【问题描述】:
有时在 SQL Server 中,我们有一个包含很多列的临时导入表(“Import”)和另一个包含很多列的表(“Production”),并且许多列具有相同的名称(但不是全部),我们只需要将同名列的值从一个写入另一个(不处理它们)。同一个数据库,两个表中同名的列具有相同的类型。
通常我们这样做:
// 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 可以做的非常相似,但我们不希望在这里。)
【问题讨论】:
标签: .net sql-server linq-to-sql