我试图根据SSIS包中的User变量值有条件地设置变量/ SQL参数。如果ReprocessBatch等于0,则设置@SuccessFailure =' S' ELSE设置@SuccessFailure =' RS'
这可行吗?如果是这样的语法是什么?
( @[User::ReprocessBatch] == 0? @SuccessFailure='S':@SuccessFailure= 'RS'),
答案 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
我也不确定你的要求。结帐优先约束。这可能会有所帮助