有条件地在SSIS表达式中设置变量/参数

时间:2016-02-22 15:23:52

标签: sql-server ssis-2012

我试图根据SSIS包中的User变量值有条件地设置变量/ SQL参数。如果ReprocessBatch等于0,则设置@SuccessFailure =' S' ELSE设置@SuccessFailure =' RS'

这可行吗?如果是这样的语法是什么?

( @[User::ReprocessBatch] == 0? @SuccessFailure='S':@SuccessFailure= 'RS'),

3 个答案:

答案 0 :(得分:2)

对于迟到的帖子感到抱歉,我正好在google搜索其他内容时看到了你的帖子。我相信你会找到一种在表达式任务中有条件地分配变量的正确方法。但如果你没有,我就是这样做的:

内部表达任务: @SuccessFailure =(@ [User :: ReprocessBatch] == 0?' S':' RS')

答案 1 :(得分:1)

我发现它无法完成,因为我试图这样做。我试图从调用存储过程的SQL任务表达式中设置参数值。

要解决此问题,我必须添加一个名为@SuccessFailure的包变量,并将参数映射到SQL任务中。

步骤: 1)添加Package变量SuccessFailure并将表达式设置为: ( @[User::ReprocessBatch] == 0? "S":"R") 2)在SQL任务参数映射中,添加变量名称: User::SuccessFailure of type string and Parameter Name of @SuccessFailure 3)编辑调用存储过程的SQL任务表达式: "exec etl." + @[User::ProjectName] + ".EndETLLog @SuccessFailure= @SuccessFailure;"

答案 2 :(得分:0)

是。有可能的。请参阅MSDN文档https://msdn.microsoft.com/en-us/library/ms141680.aspx

我也不确定你的要求。结帐优先约束。这可能会有所帮助