如何将变量传递给SSIS包以在查询中使用

时间:2016-07-25 18:40:16

标签: variables parameters ssis parameter-passing

我在尝试使用SSIS导入数据时遇到问题。 我有一个SSIS包,可以将数据从一个服务器/数据库移动到另一个服务器/数据库。 此时,查询将获取源数据库中的所有行并将其移动到目标。 我需要更改它,以便只使用ID作为过滤器移动选择的几行。 我需要传入一个ID作为参数,用于过滤数据集以仅返回选定的几行。怎么做到这一点? 我目前有一个简单的SSIS包,包含2个数据流对象(源和目的地),但从我一直在看的东西,我可能需要稍微改变一下。

SELECT 
ID, 
[Product Type], 
[Product Title]
FROM [View]
where ID = <This should be provided from outside the package>

最终将由TSQL /存储过程触发包。

感谢。

1 个答案:

答案 0 :(得分:1)

使用参数。在SSIS中,问号?被用作参数,其顺序决定参数名称。只需使用此SQL(在Source任务内):

SELECT 
ID, 
[Product Type], 
[Product Title]
FROM [View]
where ID = ?

..然后点击Parameters按钮:

enter image description here 请注意,Preview按钮(如果您将尝试)将无效(它会引发错误)但您可以忽略它,只需按照说明here尝试运行您的包。 / em>的

..然后将参数名称更改为0(零)并将其设置为您的变量:

enter image description here

应该运作良好。