我试图使用"表达式任务"在SSIS中简单地初始化/设置两个变量。这个看似简单的任务让我疯狂,因为我不知道如何分开这些陈述:
@[User::testVariable]="1"
@[User::testVar2]=3
这给出了解析错误,而且我已阅读了大量文档但无济于事。如何分离语句,我希望我不必使用多个表达式任务,因为我有很多变量......谢谢
答案 0 :(得分:17)
您一次只能设置1个变量:
要在运行时更改变量的值,您需要一个 表达式或脚本任务。表达方式不够灵活 脚本任务需要.Net知识。这就是微软的原因 在SSIS 2012中介绍了Expression Task。它可以让你设置 运行时期间一个变量的值。 缺点是它不是 适用于2008年,您一次只能设置一个变量。
http://microsoft-ssis.blogspot.com/2013/07/custom-ssis-component-multiple.html
您必须下载链接上提供的自定义Multiple Expressions Task
组件,或为每个变量执行Expression Task
。
答案 1 :(得分:6)
我最近开始做的事情,这可能对人们有所帮助:
我已经意识到通常可以使用执行SQL任务来完成工作,而不必为设置多个表达式任务或脚本任务而烦恼。根据您连接的数据库,所需的SQL可能略有不同,我的示例基于SQL Server。
我的例子是基于从参数初始化变量,但这可以针对不同情况进行调整。
第1步
创建一个接受参数的查询 - 这些是您需要值的参数或变量。您当然可以使用它将变量初始化为0或对一些参数或变量进行一些算术运算。
使用结果集选项的单行选项。
第2步
照常设置参数映射。
第3步
设置结果集。
我认为这样做的缺点是你要连接到数据库才能这样做 - 但是如果安装了SSIS,那么你在该服务器上有一个SQL Server实例 - 所以我不确定这是一个很大的缺点。
我发现这比设置脚本任务更麻烦,但是YMMV。