SSIS 包配置

在将包部署到生产环境时,在 BIDS 中编辑包配置设置是一种糟糕的做法。如果将连接管理器详细信息放在包内,则只能使用 BIDS 进行编辑。为避免这种情况,我们使用了 SSIS 包配置设置。您可以使用它们来保存连接管理器详细信息、变量、值等。在此,我们向您展示了可用的包配置及其说明列表。

默认情况下,SSIS 包配置设置在包设计器中不可用。例如,如果右键单击控制流区域,它会打开上下文菜单。从列表中,您会看到没有“包配置”选项。

要获取该 SSIS 包配置选项,请导航至“项目”菜单,然后选择“转换为包部署模型”子菜单。

SSIS Package Configuration 11

选择该菜单后,将显示一个新弹出窗口,如下所示。单击“确定”按钮。

Convert To Deployment Model 12

单击“确定”按钮后,SSIS 将把当前包转换为部署模型。单击“确定”关闭转换窗口。

Convert To Package Deployment Model Wizard 13

现在,如果右键单击 SSIS 控制流区域,上下文菜单将显示“包配置”选项。您可以选择此选项来添加它们。

SSIS Package Configuration 14

以下是 SQL Server Integration Services 或 SSIS 中可用的包配置类型列表

  • XML 配置文件:此类型会将配置设置保存在 XML 文件中。这是部署报表时最常见的方法。请参阅使用 XML 配置文件第 2 部分以了解 XML 配置。
  • 环境变量:它允许您使用环境变量来保存配置设置或包变量的值。请参阅使用环境变量文章以了解设置。
  • 注册表项:您也可以将它们保存在注册表中。请访问使用注册表项以了解注册表设置。
  • 父包变量:此类型会将它们保存在变量中。您可以使用此变量来更新子包中的属性。访问父子包
  •  SQL Server:保存在其中的表。请参阅使用 SQL Server以了解设置。
Choose the XML File 15

SSIS 包配置示例

我们将在解释每个单独包配置类型的系列文章中使用此包。在开始包配置演示之前,让我向您展示我们将使用的表。它是“重复员工”表。

Source Table 1

从下面的屏幕截图可以看出,这是一个简单的包,其中包含一个执行 SQL 任务和一个脚本任务。请参阅执行单个行集中的任务文章以了解包配置。

SSIS Package Configuration 2

让我向您展示执行 SQL 任务中的配置设置。在这里,我们选择连接类型为OLE DB 连接,它连接到数据库。接下来,我们使用“直接输入”作为语句并编写自定义命令。最后,我们将 ResultSet 从 NONE(默认)更改为 Single row。

Execute SQL Task Editor 3

我将单击…按钮以显示 SSIS 包配置的自定义查询。

-- Example
SELECT [FirstName]
      ,[LastName]
      ,[Education]
      ,[Occupation]
      ,[Sales]
      ,[HireDate]
      ,[YearlyIncome]
  FROM [DuplicateEmployee]
  WHERE [YearlyIncome] = ? AND
        [Education] = ?
Select Command to Execute 4

在“参数映射”选项卡下,我们将变量分配给参数。这意味着“年度收入”旁边的第一个问号分配给“输入年度收入”变量,另一个问号分配给“输入教育”变量。

Parameters Mapping Variables 5

从下面的屏幕截图可以看出,我们将先前创建的变量分配给语句返回的所有列。

Result Set Variables 6

我认为我忘了显示现有变量。让我关闭“执行任务”编辑器,然后右键单击设计表面以选择“变量”选项。从下面的屏幕截图可以看出,InputEducation 的默认值为“硕士学位”,InputYearlyIncome 的默认值为 90000。

SSIS Package Configuration 7

脚本任务中的 C# 代码如下所示。

C# Code 8

让我们运行 SSIS 包配置以查看结果。

SSIS Package Configuration 9