4

在此处输入图像描述我需要基于 n-multiple 变量值(isnull tr​​ue 或 false)运行 n-multiple Execute SQL Task。该变量是在前面执行 sql 任务 (CONDITIONAL QUERY) 中的 ssms 脚本中创建的。如何将 ssms 脚本中的变量值输出到 ssis 中的条件表达式?

我的两个变量是@beneficiary@gempar。它们要么存储日期类型值,要么存储空值。

在此处输入图像描述

4

3 回答 3

1

您可以在执行 SQL 任务中指定一个 ResultSet,并按照以下步骤将结果映射到一个变量:

  1. 在 SQL 语句的末尾添加以下行

    SELECT @benefeciary as benefeciary, @gempar as gempar
    
  2. 在执行 SQL 任务中,将 ResultSet 选项更改为single Row

  3. 转到结果集选项卡
  4. 将列索引(开始0)映射到相关变量

    0 >> benefeciary
    1 >> gempar
    

有关更多详细信息,有许多文章描述了此过程:

  1. SSIS 基础:使用执行 SQL 任务生成结果集
  2. 将结果集映射到执行 SQL 任务中的变量
  3. 如何在 SSIS 执行 SQL 任务中设置和使用变量
于 2019-01-28T12:36:19.437 回答
1

除了将结果集映射到变量之外,您可能还需要使用以下方法将任务的执行结果设置为变量ExecValueVariable.

附件是我的一个 SSIS 包,其中包含一个名为 HasRecord 的变量。单击Execute SQL Task并将 设置ExecValueVariable为所需的变量,User::HasRecord

在此处输入图像描述

在此处输入图像描述

于 2019-07-20T21:30:25.610 回答
1

您的条件查询任务应该将“结果集”设置为“单行”,就像屏幕截图一样:

在此处输入图像描述

然后只需将变量分配给输出列:

在此处输入图像描述

如果您的查询返回两个值,您可以使用序数位置,

所以ResultName = 0,可以映射到a@beneficiary和ResultName 1到@gempar

更多详细信息:SSIS 基础:使用执行 SQL 任务生成结果集


更新: T-SQL 任务中使用的脚本应该通过 SELECT 返回值,而不是通过 PRINT:

--SOME SELECTs..
..
SELECT @benefeciary, @gempar
于 2019-01-28T12:39:37.577 回答