我正在运行SSIS包,我想在运行时设置所需变量的值。这是一个例子
variable1= 1145554478 nvarchar(30)
我正在使用nvarchar,因为我在字符串中添加了更多字符。
variable2= [ + variable1 + _S]
variable1
和variable2
是包变量。
我已经搜索了在运行时为变量设置值的方法。正如我所想,似乎可以使用SQL任务编辑器完成。所以,我创建了一个。将variable1
设置为输入值,将ResultSet
设置为单行,并将其设置为variable2。
然后在我写的代码中
set Variable2 = '[' + ? + '_S]'
它不起作用,这是错误
错误:0xC002F210执行SQL任务,执行SQL任务:执行 使用以下内容查询“set Variable2 ='['+?+'_ S]'”失败 错误:“第1行:'='附近的语法错误。”可能的失败原因: 查询问题,“ResultSet”属性设置不正确, 参数设置不正确,或连接未正确建立。 任务失败:执行SQL任务。
SQL任务编辑器是在运行时设置变量的最佳方式吗?
我认为我在任务编辑器中编写的代码是错误的,因为那里的代码并不总是与常用的普通SQL相同。
答案 0 :(得分:3)
您不能在SQL语句中设置SSIS变量的值,而是返回值并将其分配给您的变量。
将您的陈述更改为
SELECT '[' + ? + '_S]'
将结果集更改为“单行”,然后在左侧的“结果集”下添加结果名称为0的变量
答案 1 :(得分:3)
这是一种在运行时根据另一个变量的值来操作变量值的方法。该示例使用SSIS 2008 R2,但所有SSIS版本的功能都相同。
Variables
。将显示变量窗格。Variable1
和Variable2
的数据类型为 String
的新变量。我们设置Variable1
的值为 Test_Value 。
选择第二个变量Variable2,然后按F4以显示“属性”窗格。
EvaluateAsExpression
更改为 True 。然后点击Expression
媒体资源上的省略号按钮。
在“表达式生成器”对话框中,将表达式 "[" + @[User::Variable1] + "_S]"
粘贴到Expression
文本区域中。
如果单击“评估表达式”按钮,您将看到Variable2将评估的值。在运行时期间,变量Variable2
将使用表达式自动计算为Variable1
中的值。
表达式构建器也可以允许制定更复杂的表达式。 Click this link查看另一个表达示例。
希望有所帮助。
答案 2 :(得分:2)
最简单的方法是(通常)创建一个脚本任务,然后用C#或VB编写代码。