2015-10-20 65 views
0

我的SSIS包的主要目标是读取sql代码,然后执行。脚本任务将读取SQL文件中的代码,然后将代码传递到全局变量中。 SQL任务执行存储在变量中的代码。这工作正常,但我使用一个变量来存储SQL代码。正因为如此,我不能并行执行多个步骤 。有没有办法可以避免创建多个变量来存储SQL代码?局部变量是否会起作用,如果是这样,怎么办? enter image description hereSSIS - 局部变量

+0

不,如果您希望它们同时运行,那么需要将两个SQL脚本存储在不同的内存中。 – saarrrr

+0

如何通过名称将SQL语句分配给SQL任务? I.E.使用“脚本”将SQL语句分配给“SQL任务”和“SQL任务1”。在我的脚本中,我将按名称指定sql任务,并为其分配sql语句。我认为DTS 2000有这样的东西。 – SSISUser

+0

我想你在谈论使用变量的表达式。所以如果你想让它们同时运行,你需要将SQL存储在不同的内存中。为什么你反对创建2个变量而不是1个? – saarrrr

回答

0

我会创建一个包(称之为X)只是做一个:

script -> sql task 

在X,定义你需要传递从呼叫者包X,如果需要一些包的参数。例如,表名?并将其注入到动态SQL中。 否则,将它们定义为变量。

然后创建一个调用多个X包的主包。然后你可以并行运行它们。

由于子包无法将值返回到主包(如果需要),因此必须设计其他方法将值传递回主包。例如,通过更新表中的值。主包等待X完成,因此主包可以在之后执行更多任务。