),执行完成后会出现一个讯息,告知您汇入完成或产生错误。 图24-12 「正在执行封装」画面 使用 DTS 汇入数据很简单,但是若需要重复执行数据的汇入,建立程序代码来汇入会更有效率。您可以使用 BULK INSERT 陈述式储存在一个.sql档案内的方式,建立一个指令码档案。 汇出精灵 使用 汇出精灵 可将数据从数据库中汇出到外部的目的地。 汇出精灵 和 BCP 不同,可以将数据汇出到除了数据文件以外的目的地。以下为使用 汇出精灵 的步骤: 1. 在 Enterprise Manager 中,展开一个服务器群组,并且选择想将数据汇出的服务器。从 工具 菜单中,选择 精灵 ,然后展开 数据转换服务 数据夹,选择 DTS 汇出精灵 ,按一下 确定 ,会出现 数据转换服务 ─ 汇入/汇出精灵 画面,如图 24-13 所示。 2. 按一下 下一步 进入 选择数据来源 画面,如图 24-14 所示。在这里可以指定数据来源,您可以保留默认值 Microsoft OLE DB Provider For SQL Server 这个设定,或是选择 Microsoft ODBC Driver For SQL Server 。这两项选择都可以和 SQL Server 联机。其它的选项可以用于从其它种类的数据库汇出数据。选择一个数据库继续汇出步骤,在本例中我们选择 Northwind 数据库。您可以按 进阶 按钮更改进阶的选项,如联机逾时、网络位置、网络链接库和工作站 ID 等,不过这些属性通常不需要更改。 图24-13 「数据转换服务─汇入/汇出精灵」画面 图24-14 「选择数据来源」画面 3. 按一下 下一步 进入 选择目的地 画面,如图 24-15 所示。这个画面会依照选择的目的地而有所不同,但在大部分的情况下,会要求您输入登入及档案信息。在本例中我们选择 Text File 为目的地,省略输入登入及档案信息的要求,并将数据表储存成文字文件。在 文件名称 文字方块中输入目的地文件名称。 图24-15 「选择目的地」画面 4. 按一下 下一步 进入 指定数据表复制或查询 画面,如图 24-16 所示。这个画面可指定是否汇出整个数据表,还是利用查询汇出部分数据表的数据。如果您是选择了其它的 SQL Server 数据库为输出目的地,那么 在 SQL Server 数据库之间进行对象和数据的复制 这个选项就可以使用。 图24-16 「指定数据表复制或查询」画面 5. 如果选择 使用查询来指定传送的数据 后按一下 下一步 的话,会出现 键入 SQL 陈述式 画面,如图 24-17 所示。这里可键入 SQL 陈述式,只选出您想汇出的资料。查询可用于选择数据行或数据列的子集,或是选择整个数据表。 图24-17 「键入 SQL 陈述式」画面 6. 选择 下一步 进入 选择目的档案格式 画面,如图 24-18 所示。(如果您是从 键入 SQL Server 陈述式 进入本画面,在 来源 则不会显示下拉式清单。)在这个画面中可以替目的地档案指定数个格式选项,包括档案是否使用分隔符或固定字段。选定格式后按一下 下一步 。 如果您选择的是 复制来源数据库的数据表和检视表 ,按一下 下一步 同样会进入 选择目的档案格式 画面,以这种方法进入这个画面, 来源 就会出现下拉式清单。选定格式后按一下 下一步 。 图24-18 「选择目的档案格式」画面 7. 现在进入 储存、排程和复制封装 画面,如图 24-19 所示。这里可以设定是否储存 DTS 封装以便稍后执行,设定方法和之前在 汇入精灵 所介绍的类似,只是这里的选项会以反向方式执行汇出的动作。 图24-19 「储存、排程和复制封装」画面 8. 按一下 下一步 进入 正在完成 DTS 汇入/汇出精灵 画面,如图 24-20 所示。 图24-20 「正在完成 DTS 汇入/汇出精灵」画面 9. 当您按一下 完成 按钮时,汇出程序开始执行,出现 正在执行封装 画面,如图 24-21 所示,程序完成后会出现汇出成功或失败的讯息。 汇入精灵 和 汇出精灵 的使用简化了许多设定上繁琐的步骤,但请您记得如果需要重复执行汇入或汇出的动作,花些时间写指令码会节省重复执行的时间。您可以建立使用 BULK INSERT 陈述式执行汇入或使用 SELECT 陈述式指定汇出的指令码。 ________________________________________ 说明 在范例中我们皆使用文字文件与数据库间的转换,事实上精灵可以执行更多数据型别的转换,特别对于数据库或其它数据来源之间转换数据,精灵尤其有用。 ________________________________________ 图24-21 「正在执行封装」画面 Staging 资料表 Staging 数据表是一个暂存数据表,您可以用来建立、处理和操作将会加载 SQL Server 的数据,并且将这些数据复制到数据库内部的适当数据表。本节会学习如何使用 Staging 数据表。 Staging 数据表基础 Staging 数据表是一个在数据库中的临时文件储存区,您可以将数据复制进Staging 数据表。然后您可以利用 T-SQL 执行如关联性的操作、将数据转换成想要的格式等等。这样的转换会需要用到 Staging 数据表和其它已存在的数据表。 使用 Staging 数据表处理加载的数据,可以免除某些数据加载方法对加载的限制。大部分的数据加载技术只能让数据复制到数据库,而没有加以处理。使用 DTS,可以执行一些数据转换,但是无法转换在数据库中的现有数据。使用 Staging 资料表的主要优点就是您可以基于在 Staging 数据表本身的信息或现存数据表中的信息,执行联结操作。 使用 Staging 数据表 本节中会用三个范例示范使用 Staging 数据表,分别是合并和加载数据表、加载及分割数据表、加载唯一值到一个数据表,这三个范例可以示范 Staging 数据表如何辅助数据的加载。 合并和加载数据表 想象一个在数据超市(Data Mart)中的数据表,该数据表由两个由在线交易(OLTP)系统中的数据表联合组成,该数据表有 A、B、C、D、E 五个资料行。数据行 A、B、C 在同一数据表内,而数据行 C、D、E 则在另一资料表内。这两个输入的数据表都可透过暂存方式,并且使用一个联结操作加载数据超市中,图 24-22 为操作图示。 图24-22 利用 Staging 数据表执行联结操作 加载和分割数据表 在第一个范例中,如果依照正常的情况,应该会将数据表加载数据超市中的数个数据表内(为了正规化的目的)。要能轻易完成这个工作,请先将数据复制到 Staging 数据表中,再使用两个查询将 Staging 数据表中的数据加载数据超市中的数据表,如图 24-23 所示。 图24-23 使用 Staging 数据表分割数据 加载唯一值到一个数据表 要确保加载资料的唯一性,您可以利用大量复制的方法将数据复制进 Staging 数据表中,然后使用 T-SQL 陈述式将主要数据表中没有的值,从 Staging 数据表插入主要数据表中。当加载的数据可能违反商业规则时,这个选项会很有用。使用以下的陈述式,可以将唯一值从 Staging 数据表中复制到主要数据表: INSERT INTO table (columnA, columnB) SELECT columnA, columnB FROM staging_table WHERE columnA NOT IN (SELECT columnA FROM table) 陈述式看起来复杂,其实只不过是确认主要数据表内有没有和数据行 A 相同的数据,如果没有,则将 Staging 数据表中的两个数据行(A 和 B)加载主数据表中,以确保插入数据值的唯一性。 SELECT...INTO 陈述式 使用 SELECT...INTO 陈述式并不算一个正式用来加载数据的方法,比较正确的说法应该说是从已经存在的数据表或 Staging 数据表中取得数据,然后建立一个新数据表,再加载数据的方法。 ________________________________________ 说明 由于 SELECT...INTO 陈述式工作有一定限制,数据库选项select into/bulkcopy必须设为 TRUE。要设定该选项,请使用下面的 T-SQL 陈述式: exec sp_dboption <database_name>, "select into/bulkcopy", TRUE ________________________________________ SELECT...INTO 陈述式的语法如下: SELECT <column_list> INTO <new_table_name> <select_clause> select_clause变量指的是可以和 SELECT 陈述式联合使用的陈述式或其它选项,例如 FROM 和 WHERE。SELECT...INTO 陈述式简单易用,如下面的例子。 exec sp_dboption "example", "select into/bulkcopy", TRUE GO SELECT order_id, contact_id, item_id, item_description, amount INTO newsales FROM stage GO exec sp_dboption "example", "select into/bulkcopy", FALSE GO 在这里的数据库的名称为「example」,建立一个数据表名称为newsales,取出数据的数据表是stage。 本章总结 在本章中,我们学到了 BCP、BULK INSERT 陈述式和 DTS 的使用方式,也介绍了 Staging 数据表和 SELECT...INTO 陈述式,这些工具和技术提供很多益处,因为加载数据至数据库正是 DBA 的主要任务之一。 第二十五章 将开始学习分布式交易协调员(MicrosoftDistributed Transaction Coordinator,MSDTC)以及 Microsoft Transaction Server(MTS)。
上一页 [1] [2] [3] [4] [Access]sql随机抽取记录 [Access]ASP&SQL让select查询结果随机排序的实现方法 [聊天工具]企业邮件系统的利器----FoxMail Server [系统软件]OPEN SERVER 5.0.5安装EXP300阵列柜 [系统软件]SQL语句性能优化--LECCO SQL Expert [系统软件]关于Windows2000Server的灾难恢复 [常用软件][网络]下载服务革命性风暴Poco Server评测 [C语言系列]动态创建SQL Server数据库、表、存储过程等架构信… [C语言系列]SQL Server到DB2连接服务器的实现 [C语言系列]SQL Server到SYBASE连接服务器的实现
|