我想拥有以下用户变量:
a)数据库连接 类型:字符串 范围:包
b)业务流程 - 财务或销售 类型:字符串 范围:包c)存储过程 - 如果@Business Process ='Finance'则EXEC USP_Name1 else EXEC USP_Name2 类型:字符串 范围:包
d)目的地 - 如果@Business Process ='Finance',那么Location1 else Location2 类型:字符串 范围:包
我的问题如下:
是否可以在另一个内部调用一个用户变量?如果是,有人可以向我解释如何做的代码吗?
如果没有,那么,这可以在脚本任务和/或SQL执行任务中完成吗?如果是,有人可以向我解释如何做的代码吗?
答案 0 :(得分:1)
您可以使用表达式基于另一个变量设置变量。确定存储过程的表达式如下所示:
(@[User::BusinessProcess] == "Finance") ? "USP_Name1" : "USP_Name2"
然后,您可以将SQLStatementSource
的{{1}}设置为包含上述表达式的变量。
同样适用于目的地。您可以使用连接上的表达式设置目标。
答案 1 :(得分:0)
更简单的选择是在查询中使用if语句。您可以在SSRS中的数据集查询中或在将参数传递给的存储过程中执行此操作。
--select databse
if @DBConnection = 'Finance'
use Location1
else
use Location2
--run stored procedure
if @BusinessProcess = 'Finance'
EXEC USP_Name1
else
EXEC USP_Name2