我想在SSIS执行SELECT语句,但这个选择语句需要一个参数从另一个组件,并且该选择语句的列必须被用作输入到其他组件。
例如:
select id from myTable where name = (column from a previous component).
和上面的SELECT语句的“ID”的内容应该是未来的组件可以使用的列。
如果我添加一个“OLE DB命令”组件,它可以让我参考其他组件的输入,但我不能生成它的输出。 它似乎OLE DB命令组件仅用于更新/插入语句?
关于如何做到这一点任何想法?
其实,这是对查找的情况下。 看来你想要的名称和返回ID进行查找。 很简单。 以下是我创造了这样一个例子:
- 拖动一个数据流任务拖到设计表面。 双击它来打开它。
- 对于我的数据库创建一个连接管理器
- 拖到设计表面:
- 源连接到查找到目的地。 这是“查找匹配输出”我们希望去到目的地。 见图1。
- 配置源。 我的源表刚id和name列。
- 配置查找
- 常规选项卡:使用OLE DB连接
- 连接选项卡:指定相同的连接,但使用查找表。 我的查找表只是标识和名称,但名字被制成独特的,因此,更理智的作为查找列。
- 在列选项卡,配置名称映射到名字,与“ID”作为输出。 配置查找操作是“添加新列”,并命名该列“lookupId所”。 见图2。
- 忽略其他两个选项卡
- 配置输出采取所有三列。 见图3。
就这样。 用于从源的每一行,名称列将用于匹配查找表的名称列中。 每场比赛将有助于其ID列作为新列lookupId所。 所有这三个栏将进行到目的地。
图1:
图2:
图3: