在另一个变量/ SQL执行任务/脚本任务中调用用户变量

时间:2013-06-14 22:06:42

标签: sql sql-server-2008 ssrs-2008

我想拥有以下用户变量:

a)数据库连接 类型:字符串 范围:包

b)业务流程 - 财务或销售 类型:字符串 范围:包

c)存储过程 - 如果@Business Process ='Finance'则EXEC USP_Name1 else EXEC USP_Name2 类型:字符串 范围:包

d)目的地 - 如果@Business Process ='Finance',那么Location1 else Location2 类型:字符串 范围:包

我的问题如下:

  1. 是否可以在另一个内部调用一个用户变量?如果是,有人可以向我解释如何做的代码吗?

  2. 如果没有,那么,这可以在脚本任务和/或SQL执行任务中完成吗?如果是,有人可以向我解释如何做的代码吗?

2 个答案:

答案 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