DTS Designer 与DTS Wizard 一样都是在同构或异构数据源间进行数据的导入、导出和转换。但是,DTS Designer 是一个图形工具,它使创建和编辑DTS 包的工作变得更简单、轻松,而且提供了比DTS Wizard 更为强大的功能。
DTS Designer 中包含几个关键性概念,如连接、数据传递、包、优先权约束、任务,这些概念对于理解DTS Designer 是如何工作很有帮助。
18.3.1 创建DTS Designer 包
在包中不仅要指明源和目标数据源,而且还要定义多个步骤、每个步骤执行的任务,在某些情况下还包括步骤优先权约束。使用DTS Designer 创建包首先要添加连接,每个包包含目标连接和源连接,在连接中指明OLE DB 提供者数据源,接着定义源和目标连接间的数据转换。然后要定义包将执行的任务,也可以自定义任务,最后决定是否运行包或将其存储以备后用。
下面以具体地转换authors 表为例子来说明如何使用DTS Designer 来创建包。而且,在该例中,我们要求将authors 的au_fname 列和au_lname 列合并成目标表desauthors 的au_name 列。
18.3.2 添加连接
首先为包添加源与目标连接,每个连接中指出了数据源的驱动程序,当然不同的 OLE DB 提供者所提出的要求不同。
(1) 启动SQL Server Enterprise Manager后,登录到指定的服务器,右击DataTransformation Services 文件夹,在弹出菜单中选择New package 选项,打开DTS Package <New Package> 对话框。
(2) 在主菜单中单击Data 菜单项,在下拉菜单中选择Microsoft OLE DB Provider for SQL Server 选项,打开Connection Properties 对话框如,图18-17 所示。
18.3.3 定义数据转换
数据转换任务是将数据从源连接传递到目标连接的主要机制。每个数据转换任务都要引用一个DTS Data Dump 和OLE DB 服务提供者。
创建完源与目标连接后,应创建数据转换。其方法是按住<Shift>键不放,分别先后选中源连接和目标连接,然后右击目标连接,在弹出菜单中选择Transform data Task,此时在DTS Designer 工作区会出现从源连接指向目标连接的箭头,以此来指明数据的流向。如图18-18 所示。
18.3.4 数据转换任务属性设置
(1) 创建完数据转换,接着要进行转换的属性设置。右击源和目标连接之间的箭头,在弹出菜单中选择Properties 选项,打开Transform Data Task Properties 对话框,选中Source 标签页,如图18-19 所示。在Source 标签页可以选择来自源连接的数据。
Table name: 表示来自源连接的一张表;
SQL Query: 表示来自源连接的一个查询结果集。
(2) 选中Destination 标签页,如图18-20 所示。在Table name 旁的下拉列表中选择目标表,或Create New 按钮创建新表。在此单击Create New 按钮,在弹出对话框中输入如下内容。
(3) 选中Transformations 标签页,如图18-21 所示。该对话框允许定义源连接与目标连接列之间的映射关系。可以定义以下几个映射关系:一对一,多对一或一对多。
在本例中进行映射要执行以下操作:
如果源列与目标列之间已存在映射,则选中两者间的箭头,然后按<del>键删除两者间的映射。
按下<ctrl>键不放,分别在Source table 与Destination table 中选择想要映射的列。
单击New 按钮。在弹出的Create New Transformation 对话框中选择ActiveX script 选项,单击OK 按钮。打开Transformation Options 对话框,如图18-22 所示。
(4) 分别选中Source columns 和Destination columns 标签页,从中选择准备转换的列。如果源与目标连接的列映射存在多对一或一对多的关系,则通过脚本语言可在转换过程中对源数据列进行加工,从而让转换结果满足用户的要求。再单击Properties 按钮,打开Active Script Transformation Properties 对话框,如图18-23 所示。
(5) 选中Lookups 标签页,如图18-24 所示。
(6) 选中Options 标签页,如图18-25 所示。
18.3.5 定义任务
在完成数据转换属性设置之后,可以向包中添加自定义任务。其操作步骤为:
(1) 从左边的任务栏中将要添加的任务类型拖到DTS Designer 工作区,然后右击进行属性设置。其属性对话框如图18-26 所示。在本例中所定义的任务是 SQL 脚本任务。
(2) 添加自定义任务之后,则应该在转换数据任务和自定义任务上定义优先级条件其操作顺序:为先后选择自定义任务和某个源连接,然后选择Workflow 菜单的On Success 选项。此时如图18-27 所示。
(3) 在完成包的创建之后,可以单击工具栏上的Run 按钮来运行包,在包执行时,可以通过暂停和停止按钮来对执行过程进行控制。如图18-28 所示。
本章小结
在本章中我们主要介绍DTS 的若干问题,重点讨论了如何使用导入/导出向导以及 DTS Designer 来实现数据或数据库对象的转换。