如何查询SSIS Excel Source组件返回的每一行的SQL表

时间:2014-05-14 08:15:25

标签: sql sql-server ssis

如果我有一个从Excel工作簿中读取数据的SSIS Excel源代码,有什么方法可以查询返回的每一行的SQL表吗?

实施例: Excel Source返回EmployeeID,EmployeeName和Department。现在,对于Excel源返回的每一行,是否可以在Excel Sever表中查询EmployeeCategory,其中Excel行中的EmployeeID与EmployeeCategory SQL表中的EmployeeID匹配?

这样我最终会得到格式为

的结果集
  

EmployeeID(Excel),EmployeeName(Excel),Department(Excel),EmployeeCategory(SQL Table)

1 个答案:

答案 0 :(得分:2)

当然可以。

这正是SSIS查找转换所做的。

看看这里:https://www.youtube.com/watch?v=WMfuXYsWZqM

我应该补充一点,出于性能原因,您实际上不希望对数据流中的每条记录执行新查询 - 这将非常慢。然而,SSIS查找转换的作用是创建SQL Server表的内存缓存,然后为内存中的每条记录查找EmployeeCategory的值,这非常快。

如果您确定要对每条记录实际执行查询,则Lookup Transformation组件具有一个允许它在没有缓存的情况下运行的属性。如果您想要更多的灵活性(可能会带来更大的性能损失),您可以使用OLE DB命令转换,让您为数据流中的每条记录指定要执行的查询。