如何在SSIS中的脚本组件中读取和更改列名称

时间:2010-11-03 16:13:53

标签: c# etl ssis

来源:ADO.Net(TSQL -query):查询将返回数据集(列名为月份,即JAN FEB MAR APR JUN JUL .... DEC)

目的地:Excel

如果你运行包,它正在传输数据,而excel的列名就像 JAN FEB MAR .. DEC - >这是预期的结果

新要求: 1.Declare一个名为“Year”的变量,值为2010.这可能会有所不同。 2.在数据流中使用脚本组件我必须将列名改为最终的_2010,即JAN_2010 FEB_2010 MAR_2010 ... DEC_2010(2010应该来自变量) 3.需要在脚本组件中名为“ProcessInputRow”的方法中编码的内容。 请更新我如何实现这一点,即更改脚本组件中的输入列名称 并将其转移到目的地?。

先谢谢

1 个答案:

答案 0 :(得分:1)

您无法以编程方式实际添加列或更改列名,因为以后数据流中的列名称需要是静态的。

您可以执行的操作是通过进入“脚本转换编辑器”的“输入和输出”区域,打开“输出0”,然后在“输出列”区域中添加12列,将新列添加到输出中。然后,您可以将每个输入列的数据分配给脚本中的相应输出列。

使用派生列转换可以更好地完成此任务。

所有这一切,我都有一种感觉,你真正想要的不是JAN_2010,FEB_2010等等,而是当年附加在月份名称上。实际上,您无法在数据流中使用动态列名。

但是,您可以尝试以下操作:Excel列名实际上只是Excel电子表格第一行的内容。创建一个流,使用正确的数据输出电子表格顶部的单行(使用脚本组件作为数据源),然后运行数据流以添加数据。