【问题标题】:SSIS Execute SQL Task passing an array of parameters to a stored procedureSSIS 执行 SQL 任务将参数数组传递给存储过程
【发布时间】:2016-04-05 10:00:48
【问题描述】:

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

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

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

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

我想我可以构建一串

exec proc param1value, param2value 

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

【问题讨论】:

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


    【解决方案1】:

    不,您不能将参数数组传递给 ExecuteSQL 任务。

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-09-25
      • 1970-01-01
      • 2010-11-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-29
      相关资源
      最近更新 更多