我需要基于n倍变量值(isnull true或false)运行n倍执行SQL任务。该变量是在先前的执行sql任务(条件查询)中的ssms脚本中创建的。如何将ssms脚本中的变量值输出到ssis中的条件表达式?
我的两个变量是@beneficiary
和@gempar
。它们存储日期类型值或为null。
答案 0 :(得分:1)
除了map result set to variable,您可能还需要使用ExecValueVariable.
附加的是我的SSIS软件包之一,带有一个名为HasRecord的变量。单击Execute SQL Task
,然后将ExecValueVariable
设置为所需的变量User::HasRecord
。
答案 1 :(得分:0)
您可以在执行SQL任务中指定一个ResultSet,然后按照以下步骤将结果映射到变量:
在SQL语句的末尾添加以下行
SELECT @benefeciary as benefeciary, @gempar as gempar
在“执行SQL任务”中,将ResultSet选项更改为single Row
将列索引(从0
开始)映射到相关变量
0 >> benefeciary
1 >> gempar
有关更多详细信息,有许多文章描述了此过程:
答案 2 :(得分:0)
您的条件查询任务应将“结果集”设置为“单行”,就像截图一样:
然后只需将变量分配给输出列:
如果查询返回两个值,则可以使用顺序位置,
因此ResultName = 0,可以映射到lw
,而ResultName 1可以映射到@beneficiary
更多详细信息:SSIS Basics: Using the Execute SQL Task to Generate Result Sets
更新: T-SQL任务中使用的脚本应通过SELECT而不是PRINT返回值:
@gempar