【问题标题】:SSIS adding new columns to the SourceSSIS向源添加新列
【发布时间】:2011-09-01 07:06:32
【问题描述】:

我是 SSIS 的新手。我有个问题。我从两个不同的数据源获取数据。我可以使用合并组件合并它们并将输出提供给脚本组件,在该组件中我验证数据并将其移动到目的地。每件事都运行良好。当我们在任何来源中添加一些额外的列时,我希望它能够工作。

问题是当我在源代码中添加额外的列时,我应该在脚本组件中添加输入列(选中输入列中的 ckeck 框)。有没有办法做到这一点?

请帮忙

【问题讨论】:

    标签: ssis


    【解决方案1】:

    尝试将新列添加到源中,打开包,然后按照流程进行操作。您将不得不进入包括合并控件在内的后续控件,以使用此新字段刷新数据。

    SSIS 将在必须刷新的每个阶段(例如源代码控制)用感叹号提示您,尽管您必须手动逐步执行列输出是可选的流组件(例如合并)。

    例如,我在下面的基本 ole db 源中添加了 cost 作为新列

    更新源代码控制后,我有机会将其添加到您提到的脚本组件中 - 但我不是必须这样做

    新字段应该在排序组件中可用,即使它没有在脚本控件中使用。但是,您需要在排序控件上勾选该字段作为传递,以使其进入合并组件

    【讨论】:

    • 感谢达里尔的回复。
    • 感谢达里尔的回复。问题是当我在源中添加一个新列时,我将它作为源的输出。当我将输出作为输入提供给脚本组件时,新添加的列复选框未在脚本组件的输入列中选中。这不允许我新添加的列移动到目的地。
    • 您不应该将其作为输入添加到脚本组件,除非您需要使用脚本对其进行操作。我将用一个例子来扩展我的答案
    • 谢谢达里尔。我正在验证脚本组件中的所有字段。因此,每当向 Scouce 添加新列时,都应将其作为 Script 组件的输入进行检查。有没有办法做到这一点?每次添加新列时,我们都无法修改和部署包..
    • 创建一个新列往往是一个相对罕见的事件。我不认为有一种方法可以使包自动化以自动拾取新列并将其包含在某些组件中。您可以使用查看代码在新列之前和之后获取包的 xml 格式并模拟这些更改(即相应地更改 xml)。这可能是一项艰巨的任务(特别是如果您在控件/目标中使用该列)并且您仍然必须发布新包
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多