1

我想要以下用户变量:

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

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

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

d) 目的地 - 如果 @Business Process = 'Finance' 然后 Location1 否则 Location2 类型:字符串 范围:包

我的问题如下:

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

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

4

2 回答 2

1

您可以使用表达式基于另一个变量设置一个变量。确定存储过程的表达式如下所示:

(@[User::BusinessProcess] == "Finance") ? "USP_Name1" : "USP_Name2"

然后,您可以将SQLStatementSourcean 设置为SQL Execute Task包含上述表达式的变量。

这同样适用于目的地。您可以使用连接上的表达式设置目标。

于 2013-06-14T22:55:51.123 回答
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
于 2013-06-17T16:16:31.897 回答