我需要基于 n-multiple 变量值(isnull true 或 false)运行 n-multiple Execute SQL Task。该变量是在前面执行 sql 任务 (CONDITIONAL QUERY) 中的 ssms 脚本中创建的。如何将 ssms 脚本中的变量值输出到 ssis 中的条件表达式?
我的两个变量是@beneficiary
和@gempar
。它们要么存储日期类型值,要么存储空值。
您可以在执行 SQL 任务中指定一个 ResultSet,并按照以下步骤将结果映射到一个变量:
在 SQL 语句的末尾添加以下行
SELECT @benefeciary as benefeciary, @gempar as gempar
在执行 SQL 任务中,将 ResultSet 选项更改为single Row
将列索引(开始0
)映射到相关变量
0 >> benefeciary
1 >> gempar
有关更多详细信息,有许多文章描述了此过程:
除了将结果集映射到变量之外,您可能还需要使用以下方法将任务的执行结果设置为变量ExecValueVariable.
附件是我的一个 SSIS 包,其中包含一个名为 HasRecord 的变量。单击Execute SQL Task
并将 设置ExecValueVariable
为所需的变量,User::HasRecord
。
您的条件查询任务应该将“结果集”设置为“单行”,就像屏幕截图一样:
然后只需将变量分配给输出列:
如果您的查询返回两个值,您可以使用序数位置,
所以ResultName = 0,可以映射到a@beneficiary
和ResultName 1到@gempar
更多详细信息:SSIS 基础:使用执行 SQL 任务生成结果集
更新: T-SQL 任务中使用的脚本应该通过 SELECT 返回值,而不是通过 PRINT:
--SOME SELECTs..
..
SELECT @benefeciary, @gempar