2017-10-04 91 views
0

我有一个SSIS包含一个变量(对象),它在脚本任务(类似于:字母{A,B,C,D})中取值),以及一个foreach容器每封信。传递参数SQL作业

我想为这个SSIS包创建一个作业。我如何通过作业中的变量“字母”?如果可以,我想在列表中添加更多字母;我想从作业中创建这个变量。

例如:字母{A,B,C,d,E}

我知道这是这样的:

声明@l
组@l = 'A'
select @l ='/ SET \ Package.Variables [User :: letters] .Proprieties [Value]'

对不起,如果不清楚。我不知道如何解释。

+2

您需要创建包参数。然后你可以提供值,当你设置你的工作 – PacoDePaco

+0

是啊......但现在我有一个列表,我创建它在脚本任务。我如何从工作中创建它。因为这个列表可能有不同数量的参数。 (有时候列表可能有4个,有时可能有20个)。我必须在列表中添加从作业传入的参数(在我的变量中) – istuc

回答

0

其实你需要创建一个项目参数,并在脚本任务的变量列表中传递你的($ project)参数。你也可以将它定义为需要或不需要的,因此当它在作业中没有被通知时,你可以在包中定义一些逻辑并分配一个新的值,就像你说的{A,B,C,D,E}。

0

我会做些稍微不同的事情,但我做了一个很大的假设。

您可以通过某种方式定义要循环的值。对于这个例子,我会假设你可以查询你的值。

设置一个名为LoopList的变量作为数据类型对象。

设置VAR LoopItem作为字符串

Exec的SQL对象:

  1. 组数据连接。
  2. 设置结果设置为整个结果集,
  3. 在结果集标签映射到LoopList可变
  4. 添加您的查询像选择VAL从表或什么的。

foreach循环:

  1. 收藏是的foreach ADO
  2. 选择ADO源LoopList
  3. 地图LoopItem到索引0

现在你可以运行任何你想做的事,而不必传递参数。