SSIS:是否可以从excel的SQL查询中提供输入

时间:2015-01-12 17:47:07

标签: ssis

我必须通过在where子句中传递值来使用sql查询提取数据。 要传递的值驻留在excel中。我不想在查询中对这些值进行硬编码。

任何人都可以指导我如何传递这些价值观。

例如:从XYZ中选择名称,年龄,地址,其中ID在()中 现在我必须通过我在excel表中的ID。

3 个答案:

答案 0 :(得分:0)

假设excel文件位于一个已知的位置,您可以使用Excel数据源获取信息。看看:

http://msdn.microsoft.com/en-us/library/ms141683.aspx

它支持SQL语法,但如果工作表有两行 - 列标题和数据行,它会更容易。您将命名参数从数据行中拉出来。

另外,我的回忆是你需要在执行SSIS作业的机器上安装Microsoft Office,所以在部署时请记住这一点。

获得Excel数据源中的值后,将它们存储在变量中,您可以将它们作为值参数传递给SQL查询。参见:

how to store sql query result in a variable and messegeBox

答案 1 :(得分:0)

使用脚本任务访问Excel工作表并填充SSIS变量(类型为object)。然后,通过遍历所有值在FOR EACH LOOP CONTAINER中构建SQL查询。将SQL存储在另一个变量(字符串)中,最后使用EXECUTE SQL TASK执行它。

答案 2 :(得分:0)

您可以使用脚本任务迭代Excel工作表中的所有值,并在SSIS用户变量中追加值,每个值用逗号分隔。

然后,您可以使用Execute SQL Task使用在Script Task

中创建的参数来执行SQL