SQL ServerIntegration Services 提供可用于在运行时更新属性值的包配置。配置是添加到已完成包中的属性/值对。通常,在包开发期间您在包对象上创建包设置属性,然后将配置添加到包中。当包运行时,它从配置中获取新的属性值。例如,通过使用配置,您可以更改连接管理器的连接字符串,或者更新变量的值。

包配置具有下列优点:

  • 使用配置可以更轻松地将包从开发环境转移到生产环境中。例如,配置可以更新源文件的路径,或者更改数据库或服务器的名称。
  • 将包部署到多台不同的服务器时,配置非常有用。例如,用于每个已部署包的配置中的变量可以包含不同的磁盘空间,并且如果可用磁盘空间不满足此值,包将不会运行。
  • 配置可以使包更加灵活。例如,配置可以更新在属性表达式中使用的变量的值。

Integration Services 支持几种不同的存储包配置(例如 XML 文件、SQL Server 数据库中的表以及环境变量和包变量)的方法。

每个配置都是一个属性/值对。XML 配置文件和 SQL Server 配置类型可以包括多个配置。

一 xml配置文件

   选择SSIS菜单—>包配置,打开如下窗口,包配置就从这里开始配置。

 

选择启用包配置复选,然后单击添加按钮,如图:

1. [配置类型]下拉列表框中可以看出,有多种类型的包配置。我们在这里选择“XML配置文件”

2.选择直接指定配置设置

3.单击浏览将配置文件存放到指定的路径。

配置文件默认为”.dtsconfig”类型,其文件格式时标准的XML格式。Integration  Services 对配置文件的扩展名没有严格的规定。如果把扩展名改为.txt、.xml等都没有关系。单击[下一步]按钮,选择配置需要的属性了。如图:

 

在左边的对话框中,我们可以根据需要勾选要配置的属性,当选中一个属性的时候,该属性的默认值就会在右边属性特性框中,这个值是可以改变的。完成属性更改后,单击下一步按钮,如图:

 

输入[配置名称],点击完成,XML的配置就这样轻松地完成了。在包配置组织程序框中将会出现如下图显示。然后单击关闭按钮,整个包配置的过程就结束。

我们转到配置文件存放的目录,找到刚才的配置文件"SqlConnectionString.dtsconfig ",看看它象什么样子:

<?xml version="1.0"?>

<DTSConfiguration>

      <DTSConfigurationHeading>

<DTSConfigurationFileInfo GeneratedBy="******" GeneratedFromPackageName="ReadRecommendation" GeneratedFromPackageID="{47D1A86F-A1E0-4633-85B0-323C027DE88F}" GeneratedDate="2011/10/28 10:00:21"/>

      </DTSConfigurationHeading>

      <Configuration ConfiguredType="Property" Path="\Package.Connections[RecommendationDB].Properties[ConnectionString]" ValueType="String">

           <ConfiguredValue>Data Source=******;User ID=****;Initial Catalog=RecommendationDB;Provider=SQLNCLI10.1;Auto Translate=False;Application Name=SSIS-ReadRecommendation;</ConfiguredValue>

      </Configuration>

      <Configuration ConfiguredType="Property" Path="\Package.Connections[RecommendationDB].Properties[Password]" ValueType="String">

           <ConfiguredValue>******</ConfiguredValue>

      </Configuration>

</DTSConfiguration>

    这个配置文件中,包含数据库的连接方式,如果需要修改数据库连接只要更改相应的属性就可以搞定了。

二、SQL Service配置

  这也是我们常用的配置方式之一,配置方式与XML配置大同小异,只是最后的配置属性存储到SQL Service数据库中。

 

在[配置类型]下拉列表框中,选择[SQL Server ],下面的配置界面也随着发生了变化。

[连接],即SQL Server 即数据库的连接,如果从下拉列表框中,找不到对应的连接,点击[新增],就可以创建一个新的连接,这与在连接管理器中,创建OLE DB 连接是一样的。

[配置表(A)],即配置属性存放的Table ,如果这个Table 没有事先创建好,点击[新建],系统会默认给出其如下SQL语句,点击[确定],Table 就创建完成了。 

CREATE TABLE [dbo].[SSIS Configurations]
(
    ConfigurationFilter NVARCHAR(255) NOT NULL,
    ConfiguredValue NVARCHAR(255) NULL,
    PackagePath NVARCHAR(255) NOT NULL,
    ConfiguredValueType NVARCHAR(20) NOT NULL
)

[配置筛选器(F)]:这个很关键,它是区分每个包的配置属性的key 值,也就是说,如果一个Table 中,存放有多个包的配置属性的时候,每一个包就是根据这个这个key 值来进行过滤的,所以不同的包,应该有不同的key 值。[下一步],选择要配置的属性,与上面讲的[XML配置文件]的处理方式一致了。下面,我们回到SQL Server 中,找出刚才创建的记录,看看它又是啥面貌:

 三、父包变量

 父包变量的定义也非常简单,打开包配置向导,如下图:

 

[配置类型]:选择“父包变量”。

[父变量]:这里输入父包中的变量的名称。

[下一步],选择父包变量映射的属性名称,最后点击完成,就会获得如下图所示的效果。 

 我们常见的包配置就这些了,环境变量、注册表这两种类型很少用到,这里就不多讲了。 

  包配置给包的部署带来了非常大的方便,最好的方式是每个服务器使用一个配置文件。但是,从包的配置界面可以看出,一个包可以应用多个配置文件,每个包配置按照[包配置组织程序]中显示的顺序应用(父包变量除外),如果一个配置中有一项失败了,它只会发出警告,也不会引起包错误;反之,一个配置文件也可以应用到多个包中,如果我们灵活应用,包的无缝移置,也就不再是神话了。

posted on 2012-07-17 10:57  guddujianxiao  阅读(11076)  评论(0编辑  收藏  举报