SQL Server 数据转换

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第7 章SQL Server 数据转换

SQL Server提供了一种很容易在SQL Server数据库或者非SQL Server数据库和另外一个SQL Server 数据库间转换数据的功能,该功能被称为数据转换服务或数据传输服务(Data Transform Services,DTS)。

DTS提供了许多传输数据的工具,如表7-1所示。不同的工具适用于不同的情况。

表7-1 DTS提供的传输数据的工具

工具描述

DTS导入/导出向导该向导用于将数据复制到SQL Server实例和从该实例中复制数据,

以及将转换映射到数据

DTS设计器该图形工具用于生成带有工作流和事件驱动逻辑的复杂包,也可

以使用DTS设计器编辑和自定义用DTS导入/导出向导创建的包DTS和SQL Server 这些选项可用于从SQL Server企业管理器中操作包和访问包信息

企业管理器

DTS包执行实用工具包括以下实用工具:DTS运行实用工具(用于调度和运行包的对话

框)和disrun实用工具(用于运行包的命令提示实用工具)DTS查询设计器该图形工具用于在DTS生成查询

在DTS中,使用OLE DB提供者(OLE DB Provider)在不同数据库之间传输和转换数据。通过OLE DB 提供者可以访问关系和非关系型数据。针对每种数据源,都有相应的OLE DB提供者。这些数据源包括文本文件、ODBC数据源(例如Oracle数据库)、OLE DB数据源(例如其他SQL Server实例)、ASCII文本文件和Excel电子表格。

此外,SQL Server复制使数据得以在整个企业内发布,在各个位置之间复制以及自动同步不同数据副本之间的更改。

DTS处理数据的过程如图7-1所示。

图7-1 DTS处理数据的过程

第1节导入/导出

一、导入/导出基本概念

导入导出是SQL Server数据库系统与外部进行数据交换的操作。导入数据是从外部其他系统数据源中检索数据,并将数据插入到SQL Server表的过程,例如将Excel表中数据引入到SQL Server数据库。导出数据是将SQL Server数据库中的数据转换为某些用户指定格式的过程,如将SQL Server表的内容导入到Microsoft Access数据库中,或者将一个SQL Server的数据库转移到SQL Server。

SQL Server可以导入的数据源包括ODBC数据源(例如Oracle数据库)、OLE DB数据源(例如其他SQL Server实例)、ASCII文本文件和Excel电子表格,也可以将SQL Server的数据导出为这些格式。

SQL Server2000 中有多个常用的支持数据导入导出的组件,它们是:

282

1.数据转换服务(DTS)

数据转换服务在异类OLE DB和ODBC数据源之间导入和导出数据。SQL Server 2000提供了导入\导出向导(DTS Import/Export Wizard)、DTS设计器(DTS Designer)、DTS包执行实用工具及DTS查询设计器等用于创建、调度和执行DTS包的工具等等。

2.复制

复制用于创建单独数据库中的数据副本,并通过将一个副本中的修改复制到其他所有副本,使所有副本同步。

3.批量复制程序(Bulk Copy Program,BCP大容量复制)

SQL Server的大容量复制功能允许高效地传输大量数据。大容量复制一次性地将数据传入一个表,或从一个表中传出。常用bcp实用工具批量复制数据,该实用程序通常用于将文本文件数据引入到SQL Server 表,或将数据从SQL Server表导出到一个文本文件中。

4.T-SQL 语句

T-SQL语句包括SELECT INTO、INSERT SELECT、BULK INSERT、BACKUP和RESTORE语句。

二、使用bcp实用程序导入导出数据

bcp(block copy)是SQL Server系统提供的一个块拷贝实用程序,其功能是将数据库表中的数据拷贝到某个数据文件或将某个数据文件的数据拷贝到数据库表中。常使用ASCII文本文件与数据库表进行交换。

bcp实用程序是一个非常灵活的工具,是一个命令行实用程序,必须在操作系统提示符下执行。其语法格式如下:

bcp {[[database_name.][owner].]{table_name|view_name}| "query"}

{in|out|queryout|format} data_file

[-m max_errors][-f format_file][-e err_file]

[-F first_row][-L_last_low][-B batch_size]

[-n][-c][-w][-N][-V(60|65|70)][-6]

[-q][-C code_page][-t field_term][-r row_term]

[-i input_file][-o output_file][-a packet_size]

[-S server_name[\instance_name]][-U login_id][-P password]

[-T][-v][-R][-k][-E][-h "hint[,...n]"]

主要参数的含义如下:

(1)database_name:指定的表或视图所在数据库的名称。如果未指定,则为用户默认数据库。

(2)Owner:表或视图所有者的名称。

(3)table_name|View_name|"query":是使用bcp实用程序所涉及到的表名,当将数据导入到SQL Server 系统时,它是目标表名:当从SQL Server系统中导出数据到外部时,它是源表(或视图)名。query是一个查询,表示从该查询返回的结果集中进行大容量复制,要与queryout选项一起使用。

(4)in|out|format|queryout:指出拷贝的方向(相当于SQL Server系统)。in表示把文件中的数据拷贝到数据库表中;out表示把数据库表中的数据拷贝到文件中;format表示根据选项(-n、-c、-w、-6或-N)及表分界符创建一个格式文件,若format选项,则必须使用-f选项。选项queryout与query一起使用。

283

相关文档
最新文档