SSIS 表达式设置两个变量

SSIS Expressions setting two variables

我正在尝试在 SSIS 中使用 "Expression Task" 来简单地 initialize/set 两个变量。这个看似简单的任务让我抓狂,因为我不知道如何分隔语句:

@[User::testVariable]="1"  
@[User::testVar2]=3

这给出了一个解析错误,我已经阅读了很多文档都无济于事。语句是如何分隔的,我希望我不必使用多个表达式任务,因为我有很多变量...谢谢

一次只能设置1个变量:

To change the value of a variable during runtime you need an expression or a Script Task. The expression isn't very flexible and the Script Task requires .Net knowledge. That's why Microsoft introduced the Expression Task in SSIS 2012. It enables you to set the value of one variable during runtime. Downside is that it isn't available for 2008 and you can only set one variable at a time.

http://microsoft-ssis.blogspot.com/2013/07/custom-ssis-component-multiple.html

您必须下载 link 上提供的自定义 Multiple Expressions Task 组件或为每个变量执行 Expression Task

最近开始做的事情,可能对大家有帮助:

我意识到通常可以使用执行 SQL 任务来完成工作,而不必去设置多个表达式任务或脚本任务的麻烦。所需的 SQL 可能会根据您连接到的数据库而略有不同,我的示例基于 SQL 服务器。

我的示例基于从参数初始化变量,但这可以针对不同情况进行调整。

步骤 1

创建接受参数的查询 - 这些是您需要从中获取值的参数或变量。您当然可以使用它来将变量初始化为 0 或对几个参数或变量进行一些运算。

结果集选项使用单行选项。

步骤 2

照常设置参数映射。

步骤 3

设置您的结果集。


我想这样做的缺点是您要连接到数据库来执行此操作 - 但如果您安装了 SSIS,那么该服务器上就有一个 SQL 服务器实例 - 所以我不确定这是不是很大的缺点。

我发现这比设置脚本任务要麻烦得多,但是 YMMV。