我有一个SSIS包,它是一个通用的数据导出器。我在数据库中有一个作业表,该程序包将运行。目前,这通过读取存储在列中的SQL然后执行它来工作。
我正在将存储到列中的sql转换为存储过程(因为它可以检入源代码控制)。我遇到的问题是不同的作业有不同数量的SQL参数。
所以,我有一个包含作业ID,参数名称,参数值和参数顺序的表。
如何在执行SQL任务中将参数分配给存储过程?因为我不知道有多少参数。
我想我可以构建一串
exec proc param1value, param2value
在脚本任务中并设置一个变量,我只是想知道是否有办法将包含参数数组的变量传递给任务?
答案 0 :(得分:0)
不,您无法将一系列参数传递给ExecuteSQL任务。
您可以按照描述执行动态SQL字符串,但我要做的只是将一个参数(JobId,或任何Job表的PK)传递给存储过程,并让存储过程处理其他参数的逻辑。
所以,我有一个包含作业ID,参数名称,参数值的表 和参数顺序。
因此,所有存储过程都需要查询该表并获取作业ID的所有行,并使用所有参数名称/值对构建动态sql字符串并执行它。