2

我正在运行一个 SSIS 包,我想在运行时设置所需变量的值。这里有一个例子

variable1= 1145554478 nvarchar(30)

我正在使用 nvarchar,因为我正在向字符串中添加更多字符。

variable2= [ + variable1 + _S] 

variable1并且variable2是包变量。

我已经搜索了在运行时为变量设置值的方法。正如我所想,似乎可以使用 SQL 任务编辑器来完成。所以,我创造了一个。variable1将输入值设置ResultSet为单行,并将其设置为变量 2。

然后在我写的代码中

set Variable2 = '[' + ? + '_S]'

它不起作用,这是错误

错误:执行 SQL 任务时出现 0xC002F210,执行 SQL 任务:执行查询“set Variable2 = '[' + ? + '_S]'”失败,出现以下错误:“第 1 行:'=' 附近的语法不正确。”。可能的失败原因:查询有问题,“ResultSet”属性设置不正确,参数设置不正确,或连接未正确建立。任务失败:执行 SQL 任务。

SQL 任务编辑器是在运行时设置变量的最佳方式吗?

我认为我在任务编辑器中编写的代码是错误的,因为其中的代码并不总是经常使用相同的普通 SQL。

4

3 回答 3

3

您不能在 SQL 语句中设置 SSIS 变量的值,而是返回该值并将其分配给您的变量。

将您的声明更改为

SELECT '[' + ? + '_S]'

将结果集更改为“单行”,然后在左侧的“结果集”下添加结果名称为 0 的变量

于 2012-04-13T14:37:00.750 回答
3

这是一种在运行时根据另一个变量的值来操作变量值的方法。该示例使用 SSIS 2008 R2,但所有 SSIS 版本的功能都相同。

  • 创建一个新的 SSIS 包。

  • 右键单击包上的任意位置,然后Variables从上下文菜单中选择。将显示变量窗格。

  • 变量窗格中,创建两个名为Variable1Variable2数据类型的新变量String

  • 让我们设置Variable1Test_Value

    变量

  • 选择第二个变量 Variable2 并按 F4 以显示 Properties 窗格。

  • 在属性窗格中,将属性更改EvaluateAsExpressionTrue

  • 然后单击属性上的省略号按钮。Expression

    变量 2 的属性

  • 在“表达式生成器”对话框中,将表达式粘贴"[" + @[User::Variable1] + "_S]"Expression文本区域中。

  • 如果单击 Evaluate Expression 按钮,您将看到 Variable2 将计算为的值。在运行时,变量Variable2将自动计算为Variable1使用表达式时存在的值。

  • 表达式生成器也可以允许制定更复杂的表达式。单击此链接可查看另一个表达式示例。

希望有帮助。

表达式生成器

于 2012-04-13T15:30:11.103 回答
2

最简单的方法(通常)是创建一个脚本任务,然后用 C# 或 VB 编写代码。

于 2012-04-13T14:31:59.053 回答