我有一个平面文件源,它从平面文件中读取数据。我们最近在这个平面文件中添加了一个新列。
将平面文件数据插入数据库表中。为了适应目标组件中的新字段,我使用ALTER TABLE
语句将新列添加到表中。这是我所做的唯一改变。
平面文件和目标组件之间的映射是否会自动更改?我没有在SSIS包中的任何位置看到平面文件中存在其他列。
如何在SSIS包中的平面文件中配置附加列,以便平面文件源可以将数据传递到目标组件?
答案 0 :(得分:14)
如果您向平面文件添加了新列,则需要更新 Flat File Connection Manager
以反映新的更改。 平面文件连接管理器将出现在软件包底部的 Connection Manager
标签下。
假设您有一个包含 StateCode 和 StateName 列的平面文件。
配置Flat File Connection Manager
后,您会在高级标签页下看到这些列配置,如下所示。
如果您修改平面文件以添加其他列,请添加名为 CountryCode 的新列。
平面文件连接管理器不包含新列定义。您需要打开平面文件连接管理器以添加新列,或者您可以删除平面文件连接管理器并使用新的平面文件列定义创建一个新文件。
您需要单击“新建”并选择适当的选项以插入列。您无法移动列位置。因此,请确保选择正确的选项来添加列。设置适当的属性以定义列。
修改源或目标架构时,它将影响数据流任务中的源和目标组件。您可能会在组件上看到警告图标,如下所示,因为该组件与其关联的连接管理器的元数据信息不同步。
双击显示警告的组件,然后在编辑器上单击“确定”以解决映射问题。
希望有所帮助。
答案 1 :(得分:1)
当您更改基础组件(如平面文件或数据库)的元数据时,SSIS不会自动刷新所有可用列。您必须手动执行此操作。
答案 2 :(得分:0)
更新平面文件源中列的最简单方法是重置平面文件连接上的列。
当然,如果您对数据类型进行了自定义更改,那么您需要小心。等等。