当前位置: 首页 > 图文教程 > 数据库 > MSSQL > 在SQL2005 轻松配置SSIS包

MSSQL
SQL Server导出表到EXCEL文件的存储过程
如何利用触发器实现两个数据库间的同步
SQL Server数据库连接查询的种类及其应用
SQL Server 2005中利用xml拆分字符串序列
Microsoft SQL Server数据库SA权限总结
用SQL语句生成带有小计合计的数据集脚本
深入剖析SQL Server的六种数据移动方法
为导入文件加上时间戳标记的两种方法
SQL Server与Oracle、DB2的优劣对比
带你深入了解SQL Server 2008的独到之处
通过视图修改数据时所应掌握的基本准则
SQL Server中如何优化磁带备份设备性能
教你轻松解决几种常见的SQL疑难问题
怎样取得局域网中所有SQL Server的实例
在系统崩溃的时候如何恢复原有的数据
获得当前数据库对象依赖关系的实用算法
SQL Server如何才能访问Sybase中的表
如何才能保护好我们的SQL Server数据库
从两个方面讲解SQL Server口令的脆弱性
SQL Server数据库日志清除的两个方法

MSSQL 中的 在SQL2005 轻松配置SSIS包


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-30   浏览: 96 ::
收藏到网摘: n/a

在以前的DTS中,在包的开发、测试、发布迁移过程中有很多问题,典型的问题是你必须手动的确定包中的所有连接都指向一个实际存在的物理服务器

幸运的是,现在在SSIS中提供了这种问题的解决方案,那就是包配置
包配置是一个动态改变你的SSIS对象和连接属性的一种机制,它把这些动态可以改变的信息保存在包的外部,有下面几种方法存储这些值并将其传送到包中:
 XML文件
 环境变量
 注册表键值
 父包变量

下面我们将举例使用XML文件存储这些值

这个例子我们将会把一个文本文件导入到数据库的表中,并可以动态配置数据库的位置来源

首先开始我们的包的建立:
 假设存在一文本文件 PersonAge.txt,内容如下:
  1,Joe Bloggs,27
  2,Mary Smith,26
  3,Fred Jones,28
 目标表为dbo.PersonAge,使用下面代码建立 
  CREATE TABLE [dbo].[PersonAge](
   [PersonAgeKey] [int] NULL,
   [Person] [varchar](35) NULL,
   [PersonAge] [int] NULL
  ) ON [PRIMARY]
  GO
 下面开始拖曳组件到控制流面板
   。一个Execute SQL task组件,命名为Truncate destination. 其 SQL 命令为 TRUNCATE TABLE dbo.PersonAge.
   。一个数据流组件,命名为Import File.
   。然后把2者关联起来
 
   
 
  下面开始设计【Import File】数据流任务
   。一个 Flat File connection 组件指向PersonAge.txt文件
   。一个 OLE DB Connection 组件指向存在dbo.PersonAge表的数据库 ,然后配置列的属性,使表跟文件对应起来
      
   
  
  到现在为止,已经成功的建立了包

设置包配置
  现在开始设置包配置,这是非常简单的且具有很好的弹性
  包配置使你能编辑你的包的属性、变量、连接和你的控制流的其他属性,需要注意的是,你不能编辑你的数据流组件的属性
  
  在菜单条上,单击DTS, Package Configurations… 或者在控制流设计面板右键选择Package Configurations….
  然后在包配置中允许包配置选择,并单击添加
  在单击过后出现一个欢迎屏幕并让你选择配置类型,当前选择XML Configuration File
  然后键入配置文件名,如C:\PackageConfigurations\Environment.dtsConfig,单击下一步
  然后在对象树浏览中选择Connections.Destination.Properties的InitialCatalog 和 ServerName属性,然后单击下一步
  给你的配置一个名字,这样整个过程就完成了
  
这样你的包将在运行期间获得2个属性的值,你打开XML配置文件,你将看得这些你需要动态改变属性的当前值  

现在,你可以非常容易的迁移包到另一个新的环境,而你只须改变你的包配置文件(C:\PackageConfigurations\Environment.dtsConfig)即可