如何将多个Excel列导入到单个SQL Server列中?

我们从不同的来源导入大量的数据文件(主要是Excel,有时是CSV)到SQL Server数据库中。 数据文件有一些常用的字段(名称,地址等),通常还有其他字段 – 我们需要/使用的一些字段和一些我们不需要的字段。

我怎么能导入一个文件中的所有数据 – 插入通用/必填字段到相关的列,但也合并其余的列成一列(文本或varchar(max))? 这可能吗? 我不介意Excel / SQL Server的版本。

所以我可能会收到一个源文件如

FirstName, LastName, AddressLine1, City, ColumnE, ColumnF, DateColumn, ColumnH 

这是存储在SQL Server中

 FirstName nvarchar(25) LastName nvarchar(25) AddressLine1 nvarchar(50) City nvarchar(30) OtherData nvarchar(max) 

当然,OtherData列需要包含一些分隔符来标识导入的Excel列。

我们只需要使用“common”列,但是当我们导出数据(通常只是原始行的一部分)时,我们可以更容易地包含OtherData,而不是为每个不同的数据文件创build自定义表格,或者与Excel合并。


编辑:我可以通过添加大量额外的列到数据文件作为自定义分隔符,然后使用BULK INSERT,但这是相当费时。

粗略地说,如果你知道excel中的标签名,你可以使用C#和OLE DB / JET 12驱动来读取数据到一个数据集(基本上是SELECT * FROM [tabname])。 CSV可以加载更简单。 在这一点上,这是一个冲击到数据库的问题。

如果你对这种方法感兴趣的话,我今天晚上就不能刮出一些伪码。