转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 数据库 >> Sql Server >> 正文
《MS SQL Server 2000管理员手册》系列——24. 加载数据库         

《MS SQL Server 2000管理员手册》系列——24. 加载数据库

作者:闵涛 文章来源:闵涛的学习笔记 点击数:4657 更新时间:2007/11/14 13:12:39
),执行完成后会出现一个讯息,告知您汇入完成或产生错误。
 
 
图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连接服务器的实现
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · Sql Server  · MySql
    · Access  · ORACLE
    · SyBase  · 其他
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台