SSIS 项目参数与包参数

在本示例中,我们将演示如何创建或配置SSIS项目参数和包参数。我们还将向您展示SSIS项目参数和包参数之间的区别。

SSIS 项目参数与包参数

在SSIS中,参数有两种类型:项目参数和包参数。

  • 项目参数类似于全局变量。您可以从该项目中的任何包访问它们。
  • 包参数类似于局部变量。您可以从创建的包中访问它们。您无法从package2.dtsx访问package1.dtsx中的包参数。

SSIS项目参数

在这里,我们将演示在SSIS中创建项目参数的步骤。如果您查看解决方案资源管理器,我们会看到Project.params。

右键单击Project.params,然后从上下文菜单中选择“查看设计器”选项以创建SSIS项目参数。

单击“查看设计器”选项后,将打开以下窗口。您可以使用此窗口查看现有项目参数、创建新的项目参数、编辑现有参数或删除它。

从下面的屏幕截图中,我们通过单击“新建”按钮来创建新的项目参数。

Create a New Project Parameter in SSIS 3

我们将名称指定为ProjectMessage,数据类型指定为string,值为Hey!!这是SSIS项目参数。请单击“保存”按钮以保存项目参数。

Save the Project Parameters

现在,您可以在SSIS Packages文件夹中的所有包中使用此项目参数,即ProjectMessage。

SSIS Project Parameters Vs Package Parameters 6

SSIS包参数

在本示例中,我们将演示在SSIS中创建包参数的步骤。为此,我将创建一个新包。

如果您观察到以下屏幕截图,每个新包都有一个“参数”选项卡。您可以使用此选项卡创建包级别的参数。请单击此选项卡创建一个。

Create Package Parameters in SSIS

创建包级别参数和项目级别参数的界面是相同的。请单击“新建”按钮创建一个新的。

正如您从下面的屏幕截图中看到的,我们创建了一个名为PackageMessage的新参数,类型为string,其值为Hi!!这是一个包消息。

SSIS Project Parameters Vs Package Parameters 9

SSIS 项目参数与包参数

在这里,我们使用脚本任务来显示包含来自项目参数和包参数的数据的消息。为此,请从工具箱中将脚本任务拖放到“控制流”区域。

SSIS Project Parameters Vs Package Parameters 10

双击脚本任务将打开以下编辑器来配置脚本任务组件。我们在上一篇文章中已经解释了脚本任务的配置步骤,请参考相同的。

在这里,我们要选择已创建的参数。因此,请单击“只读变量”属性旁边的“…”(浏览)按钮。

在这里,我们将项目参数和包参数都选择为只读变量。

SSIS Project Parameters Vs Package Parameters 12

选择完所需的变量后,请单击“编辑脚本..”按钮以编写实际的C#或VB脚本。

Script Task Editor

这里我们使用消息框在弹出窗口中显示消息。

我们在下面截图中使用 C# 代码是:

// SSIS Project Vs Package Parameters Example
string ProjectMessage = Dts.Variables["$Project::ProjectMessage"].Value.ToString();
string PackageMessage = Dts.Variables["$Package::PackageMessage"].Value.ToString();

MessageBox.Show("Message From Project Parameter is:" + 
                        ProjectMessage + Environment.NewLine +
                 Environment.NewLine +
                "Message From Package Parameter is:" + PackageMessage);
Code in Script Task

单击“确定”以完成SSIS项目与包参数包的配置。让我们运行该包。

SSIS Project Parameters Vs Package Parameters 15

让我打开此项目中的另一个包。从下面的屏幕截图中,您可以看到这是我们在Execute Task in Single Rowset文章中创建的包。

Project Parameters Vs Package Parameters 16

让我尝试从这个脚本任务访问我们之前创建的。正如您从下面的屏幕截图中看到的,我们可以访问项目参数,但无法访问包参数。

SSIS Project Parameters Vs Package Parameters 17