SSIS - 在另一个表上执行查找以获取相关列
Posted
技术标签:
【中文标题】SSIS - 在另一个表上执行查找以获取相关列【英文标题】:SSIS - Performing a Lookup on another Table to get Related Column 【发布时间】:2009-07-20 20:31:34 【问题描述】:我想在SSIS中执行一个select语句,但是这个select语句从另一个组件中获取了一个参数,并且这个select语句的列必须作为其他组件的输入。
例如:
select id from myTable where name = (column from a previous component).
并且上面select语句的“id”内容应该是未来组件可以使用的列。
如果我添加一个“OLE DB 命令”组件,它允许我将其他组件作为输入引用,但我无法从中生成输出。似乎 OLE DB 命令组件仅用于更新/插入语句?
关于如何做的任何想法?
【问题讨论】:
这是数据流还是控制流? 抱歉来晚了,下面的例子。 【参考方案1】:其实这就是 Lookup 的一个案例。看来您想按名称进行查找并返回 id。很简单。以下是我创建此示例的方法:
-
将数据流任务拖到设计图面上。双击它可以切换到它。
为我的数据库创建连接管理器
拖到设计图面上:
一个 OLE DB 源
查找转换
一个 OLE DB 目标
将源连接到目标查找。这是我们想要到达目的地的“查找匹配输出”。见图 1。
配置源。我的源表只有 id 和 name 列。
配置查找
常规选项卡:使用 OLE DB 连接
连接选项卡:指定相同的连接,但使用查找表。我的查找表只有 id 和 name,但 name 是唯一的,因此作为查找列更有意义。
在列选项卡上,将名称配置为映射到名称,并将“id”作为输出。将查找操作配置为“添加新列”,并将该列命名为“lookupId”。见图 2。
忽略其他两个选项卡
将输出配置为采用所有三列。见图 3。
就是这样。对于源中的每一行,名称列将用于匹配查找表的名称列。每个匹配项都将提供其 id 列作为新的 lookupId 列。所有三列都将前往目的地。
图一:
图2:
图3:
【讨论】:
以上是关于SSIS - 在另一个表上执行查找以获取相关列的主要内容,如果未能解决你的问题,请参考以下文章