SSIS表达式设置两个变量

Lea*_*ing 11 expression ssis bids ssis-2012 sql-server-data-tools

我正在尝试在SSIS中使用"表达式任务"来简单地初始化/设置两个变量.这个看似简单的任务让我疯狂,因为我不知道如何分离这些陈述:

@[User::testVariable]="1"  
@[User::testVar2]=3
Run Code Online (Sandbox Code Playgroud)

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

Squ*_*3lz 19

您一次只能设置1个变量:

要在运行时更改变量的值,您需要一个表达式或一个脚本任务.表达式不是很灵活,脚本任务需要.Net知识.这就是微软在SSIS 2012中引入Expression Task的原因.它使您能够在运行时设置一个变量的值.缺点是它不适用于2008年,您一次只能设置一个变量.

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

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

  • 我不敢相信我花了这么长时间才选择这个最佳答案 - 即使它帮助了我和其他许多人. (3认同)

Jo *_*ass 8

我最近开始做的事情,可能对人们有所帮助:

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

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

步骤1

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

对" 结果集"选项使用" 单行"选项.

常规选项卡

第2步

像往常一样设置参数映射.

参数映射选项卡

第3步

设置结果集.

结果集选项卡


我想这样做的缺点是你要连接到数据库来做 - 但是如果你安装了SSIS,那么你在那台服务器上有一个SQL Server实例 - 所以我不确定它有多大的缺点.

我发现这比设置脚本任务更麻烦,但是YMMV.