SQL Server从Excel导入SQL,重复列名称

时间:2018-04-09 13:33:16

标签: sql-server tsql ssis

我有一个源Excel电子表格,我导入到我的SQL服务器表。我无法控制来源。我在SSIS包中使用SQL命令从此电子表格导入。 Excel源编辑器上的示例导入命令:

select 
[job number]
,[Cart]
,[Housing 1]
,[Housing No]
 from [Site Report$a2:X10000]
where region = 'South'

数据位于列A(作业)中,而列U-W位于其他部分中。问题是有第二个"购物车"在M栏上的字段。所以我的查询书选择该列为" cart"数据而不是正确的第二次出现。有办法解决这个问题吗?

1 个答案:

答案 0 :(得分:3)

如果您的Excel文档中的列具有相同的名称,则您将不得不更改文件,或忽略标题。

就我个人而言,我会告诉那些为您提供文件并让他们更改文件的人。我知道你说过你不能,但我真的建议你试试。如果没有,那么你必须以更难的方式去做。

此示例使用我在第1行中使用列标题的工作表和导入/导出向导(这不是很好,但有助于显示您需要执行的操作)。

首先,配置您的来源,但取消勾选"第一行有列名"复选框。  enter image description here

接下来,继续正常运行,并使用该选项提供查询以获取数据。选择仅存储数据的行,并排除标题。例如: enter image description here

然后,当您选择目标时,单击“编辑映射”,然后单独选择映射到的每个列。 tbl_tags是您返回的第一列,F1是第二列,等等。对于我的查询,F2列为A,{{1对于F1。但是,如果您的查询类似于F2,那么B将是列SELECT * FROM [Sheet2$F9:AQ];,F2列F1等等。因此它看起来像这样: enter image description here

然后您可以正常导入数据。