SSIS执行SQL任务将一组参数传递给存储过程

时间:2016-04-05 10:00:48

标签: sql-server sql-server-2008 ssis

我有一个SSIS包,它是一个通用的数据导出器。我在数据库中有一个作业表,该程序包将运行。目前,这通过读取存储在列中的SQL然后执行它来工作。

我正在将存储到列中的sql转换为存储过程(因为它可以检入源代码控制)。我遇到的问题是不同的作业有不同数量的SQL参数。

所以,我有一个包含作业ID,参数名称,参数值和参数顺序的表。

如何在执行SQL任务中将参数分配给存储过程?因为我不知道有多少参数。

我想我可以构建一串

exec proc param1value, param2value 

在脚本任务中并设置一个变量,我只是想知道是否有办法将包含参数数组的变量传递给任务?

1 个答案:

答案 0 :(得分:0)

不,您无法将一系列参数传递给ExecuteSQL任务。

您可以按照描述执行动态SQL字符串,但我要做的只是将一个参数(JobId,或任何Job表的PK)传递给存储过程,并让存储过程处理其他参数的逻辑。

  

所以,我有一个包含作业ID,参数名称,参数值的表   和参数顺序。

因此,所有存储过程都需要查询该表并获取作业ID的所有行,并使用所有参数名称/值对构建动态sql字符串并执行它。