使用DTS设计器可以使用户按任意顺序编辑和设计数据包,而不需按“DTS导入/导出向导”规定的顺序进行。无论是打开一个已有的数据包还是新建一个数据包,都会打开如图10-13所示的DTS设计器窗口。
DTS设计器界面由菜单栏、主工具栏、“连接”工具栏、“任务”工具栏和设计区域组成。“连接”工具栏中的11个图标代表“数据源”和“数据目的”的类型,其中带有右箭头图标的数据只能作为“数据源”,带有左箭头图标的数据只能作为“数据目的”,不带箭头的则既可以作为“数据源”又可以作为“数据目的”。“任务”工具栏中的17个图标代表各种不同的任务,其中进行数据转换时,最常用的是“数据转换任务”图标按钮。用户也可以通过选择菜单栏中的菜单命令执行添加数据源、添加数据目的、添加要执行的任务等操作。设计区域中将显示各种数据源、数据目的以及它们之间的连接。
图10-13 DTS设计器界面
DTS设计器提供了一个图形化工具,它用于创建从数据源到目标的连接、配置DTS任务、执行转换,以及指定优先权约束。设计时可以采用拖放操作方式,在设计区域内部完成创建DTS数据包所需的对象对话框。
使用DTS设计器创建一个DTS数据包的一般步骤如下:
(1)打开DTS设计器。打开企业管理器,展开所在的服务器,右击“数据转换服务”节点,在弹出的快捷菜单中选择“新建包”命令,如图10-14所示,弹出如图10-13所示DTS设计器窗口。
图10-14 选择新建包
(2)选择数据源。单击“连接”工具栏中相应数据源的按钮,但是该图标不能包括左箭头,如果未在“连接”工具栏中列出,可以单击任意一个图标按钮,在弹出的对话框中设置选择数据源,其设置方法与DTS导入/导出向导中数据源相同。
(3)选择数据目的。单击“连接”工具栏中相应数据目的的按钮,但是该图标不能包括右箭头,如果未在“连接”工具栏中列出,可以单击任意一个图标按钮,在弹出的对话框中设置选择数据目的,其设置方法与DTS导入/导出向导中数据目的的设置方法相同。
(4)选定数据转换任务。“任务”工具栏中列出了17种任务,若要转换数据,可单击“转换数据任务”按钮,鼠标指针将会变成如图10-15所示指针,指针右侧提示选择源连接。单击某数据源后,可将该对象设为“数据源”,此时指针右侧提示选择目的连接,如图10-16所示,单击某数据目的后,即可将该对象设为“数据目的”。至此,转换数据定义成功,会出现一个从数据源指向数据目的地的箭头,如图10-17所示。
图10-15 选择源连接
图10-16 选择目的连接
图10-17 建立转换数据任务
(5)配置转换属性。在建立转换任务后,要使数据包正常工作,一般还需要对转换任务进行配置。具体操作是双击数据源和数据目的之间的箭头,或者右击该箭头,在弹出的快捷菜单中选择“属性”命令,出现如图10-18所示“转换数据任务属性”对话框。
· 默认显示的为“源”选项卡,单击“表/视图”单选按钮后可在“表/视图”下拉列表框中选择作为数据源的表或视图,也可以单击“SQL查询”单选按钮在下方的编辑区中通过SQL语句产生数据源。
图10-18 转换数据任务属性
· 单击“目的”标签,激活如图10-19所示“目的”选项卡,其中列表中列出了各列的名称、类型、为空性、大小和精度等属性。若目的表不合适,可以单击“创建”按钮,弹出如图10-20所示对话框,在编辑区中可直接输入SQL语句,单击“确定”按钮即可创建新目的表。
图10-19 转换数据任务目的选项卡
图10-20 创建目的表
· 单击“转换”标签,打开如图10-21所示“转换”选项卡,用于配置转换方式,默认情况下,源列被原封不动地复制到目标列中。如果要在源和目的之间修改列内的数据,可以在“名称”下拉列表框选择或单击源和目的之间的箭头来选中要修改的转换项,然后单击“新建”按钮或单击“编辑”按钮来创建一个转换或修改一个已有的转换。
图10-21 转换数据任务“转换”选项卡
10.3.2节中介绍的数据包只是转换数据任务,即将一种数据库格式的数据转换成另一种数据库格式的数据,若要实施这种转换,还需要执行数据包。
执行数据包有两种方法,一种是利用企业管理器,一种是利用DTS设计器。
· 在企业管理器中,右击要执行的数据包,在弹出的快捷菜单中选择“执行包”命令,如图10-22所示,程序将执行数据包中的全部转换。
图10-22 选择执行包
· 利用DTS设计器来执行数据包时,双击该数据包或者右击该数据包在弹出的快捷菜单中选择“设计包”命令,打开DTS设计器。若要执行所有步骤的转换,单击主工具栏上的“执行”按钮或者选择菜单栏中的“包”→“执行”菜单项。若要只执行其中某一步的转换,右击要执行转换的连线,如图10-23所示,在弹出的快捷菜单中选择“执行步骤”命令即可执行该步骤。
图10-23 选择执行步骤
执行数据包中所有步骤时,所有转换并不是同时进行的,而是依次进行的,其执行次序可以自行定义,这主要通过设定优先约束来实现。例如,在图10-23中所示数据包中,可以定义“SQL Server数据转换为Excel工作表”在“SQL Server数据转换为TXT文本”之后完成,其操作步骤如下:
(1)右击“将SQL Server数据转换为Excel工作表”的箭头,如图10-23所示,选择“工作流属性”命令,弹出如图10-24所示“工作流属性”对话框。
图10-24 工作流属性
(2)单击“新建”按钮,在“优先”列表框中出现一个新的约束,单击“源步骤”栏可选择优先级高的步骤,这里选择“转换为TXT”,再单击“优先”栏选择优先类型,这里选择“成功”,表示在源步骤成功进行后,再进行目的步骤(目的步骤即当前选中的步骤),如图10-25所示。
图10-25 添加优先约束
(3)单击“确定”按钮,返回DTS设计器窗口,此时设计区域中出现表示优先约束的箭头,如图10-26所示。
图10-26 添加了优先约束的数据包
如果启动了SQL Server Agent服务,则可以指定数据包执行的时间,也就是所谓的调度数据包。在使用DTS导入/导出向导创建数据包时,可以指定其执行时间,如图10-27所示。对于一个已有的数据包,也可以对其进行调度,其操作步骤如下:
(1)右击要调度的包,在弹出的快捷菜单中选择“调度包”命令,弹出如图10-27所示对话框,可以设置执行数据包的时间表。
· 设置发生频率:在“发生频率”选项组中设置执行数据包的日期。若单击“每天”单选按钮,可以设定为每几天执行一次;若单击“每周”单选按钮,可以设定每几周的哪几天执行;若单击“每月”单选按钮,可以设定每几个月的第几天执行,也可以设定为每几个月的第几个星期几执行。
· 设置执行时间:在“每日频率”选项组中设置执行数据包的时间。若单击“一次发生于”单选按钮,可以设定每天执行的时间;若单击“发生周期”单选按钮,可以设定在每天的一段时间内每隔几个小时执行一次。
· 设置持续时间:在“持续时间”选项组中设置执行数据包的时间段。可以设定其开始日期、结束日期,若要永远执行,则可以单击“无结束日期”单选按钮。
图10-27 调度包
(2)单击“确定”按钮保存设置。
如图10-27所示设置含义为从2007年2月14日起,每个月第三个星期天的12点到18点(不包括18点)之间,每个小时执行一次。