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