如何防止SSIS将列名写入平面文件输出?

5

我在平面文件中获得了以下输出。

Flat file output file

如何避免列名被写入平面文件输出?


在您的Excel配置管理器中,勾选“第一行具有列名...”选项。 - rs.
个人而言,我会尝试说服任何想要这样做的人接受标题行。我们每月进行数千次导入,如果客户无法提供标题行,则在出现问题时需要花费更长时间进行故障排除。然而,如果您无法让他们接受标题行,@user756519有正确的解决方案。 - HLGEM
3个回答

11
我发现实现这个目标的最佳方法如下:
  1. 我创建一个测试输出平面文件。我使用SQL查询结果填充 .txt 文件以用于包中。请确保 .txt 文件的第一行包含列标题名称。
  2. 创建一个 "Flat File Connection",并将其指向文本输出平面文件。选中 "Column names in the first data row" 框,这将确保实际的列头名称将被使用/显示,而不是 "Column 0"、"Column 1" 等。单击 "OK" 关闭 "Flat File Connection Manager"。
  3. 编辑 "Flat File Destination" 条目,确保拾取实际的列头名称以及图形化展示你查询和 Flat File Connection 的输出列之间的字段映射。点击 "OK"。
  4. 突出显示 "Flat File Connection" 并按 "F4" 打开 "Properties" 窗口。在那里,将 "ColumnNamesInFirstDataRow" 更改为 "False"。
现在,你的输出平面文件只包含数据...没有列头行。但你仍然可以转到 "Flat File Destination" 条目,并在那里看到实际的列头名称被使用。

2
很好的回答,但我想強調您提到的第4點:您必須在「內容」視窗中將「ColumnNamesInFirstDataRow」更改為False,而不是透過雙擊連接管理器進入編輯器。如果您選擇後者,SSIS會「貼心地」決定所有列都將被稱為Column1、Column2等,並毀掉您的所有映射。 - SebTHU
非常感谢。由于我定义了SPACE()列,这对我非常有帮助。 - Melinda

4
避免平面文件输出中的列名:
双击平面文件连接管理器以打开平面文件连接管理器编辑器平面文件连接管理器编辑器上,取消勾选第一个数据行中的列名的框。
这将防止平面文件连接管理器将列名写入平面文件输出。

Flat File Connection Manager Editor


但是如果我取消勾选它,标题列部分会显示在数据部分...它在文件中存在。 - 343

0

如果文件中已经有标题行,您可以简单地跳过第一行。请参见@user756519答案中的屏幕截图。 将Header rows to skip设置为1


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接