【问题标题】:Question about adding column to data source and destination in SSIS package关于在SSIS包中向数据源和目标添加列的问题
【发布时间】:2020-02-13 22:21:32
【问题描述】:

我有一个类似于

的数据源
select 
patient_id 
from patient_table

目标是一个 CSV 文件。

现在我想将 patient_name 同时添加到源和目标。

我转到源并将查询更改为

select 
patient_id,
patient_name 
from patient_table

当我单击列时添加此内容后,患者姓名列不存在。

我的目的地也发生了同样的事情。我有一个带有 patient_id 列的平面文件目标,因此我将 patient_name 列添加到实际的 .csv 文件中,并且该列不会反映在平面文件连接管理器上。

我能够让这些新列显示的唯一方法是删除数据流任务、连接管理器、源和目标,并从头开始创建所有新内容。

还有其他方法吗?

【问题讨论】:

    标签: sql ssis


    【解决方案1】:

    我刚刚创建了一个带有 OLE DB 源和平面文件目标的简单数据流。在向 OLE DB 源添加第二列后,我双击打开了平面文件目标编辑器的平面文件目标。单击更新将第二列添加到平面文件连接。

    您是否使用latest tooling 可用于修改 SSIS 包?

    【讨论】:

    • 我去了连接管理器。我将列添加到 SQL 命令中。我预览数据并在预览数据时确认有添加的列。当我单击列时,有两个部分。没有患者姓名列的可用外部列部分。以下部分显示外部列和输出列都缺少患者姓名imgur.com/a/izvfAhm
    【解决方案2】:

    我现在手头没有 SSDT 安装,所以我会尽我所能,不使用屏幕截图(并且从内存中工作)。

    在源对象中,将列添加到查询文本后,单击您已经知道的Columns。您的新列尚未显示在底部的列表中,您也知道这一点。在该窗口的顶部,有一个查询结果集的网格表示。在该网格中找到您的新列并选中该框以告知连接器您希望该列进入数据流。

    现在转到.csv 文件的连接管理器。在那里添加新列。

    一旦它在连接管理器中,现在您应该能够将它映射到目标对象中。

    您可能需要单击数据流任务中的一个或多个箭头并在其中映射新列,但并非总是如此。我还没有花时间弄清楚为什么有时这是必要的而不是其他人,但你会马上知道,因为箭头上会有红色的Xs。

    这应该会让你到达那里。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-11-18
      • 1970-01-01
      • 1970-01-01
      • 2011-08-03
      • 1970-01-01
      • 2018-06-30
      • 1970-01-01
      相关资源
      最近更新 更多