教你在SQLServer数据库中导入导出数据.doc

上传人:公**** 文档编号:553522732 上传时间:2022-10-03 格式:DOC 页数:4 大小:116KB
返回 下载 相关 举报
教你在SQLServer数据库中导入导出数据.doc_第1页
第1页 / 共4页
教你在SQLServer数据库中导入导出数据.doc_第2页
第2页 / 共4页
教你在SQLServer数据库中导入导出数据.doc_第3页
第3页 / 共4页
教你在SQLServer数据库中导入导出数据.doc_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《教你在SQLServer数据库中导入导出数据.doc》由会员分享,可在线阅读,更多相关《教你在SQLServer数据库中导入导出数据.doc(4页珍藏版)》请在金锄头文库上搜索。

1、教你在SQLServer数据库中导入导出数据.教你在SQLServer数据库中导入导出数据在我们成立一个数据库时,并且想将分别在各处的不一样种类的数据库分类汇总在这个新建的数据库中时,特别是在进行数据查验、净化和变换时,将见面对很大的挑战。幸亏SQLServer为我们供给了强盛、丰富的数据导入导出功能,并且在导入导出的同时能够对数据进行灵巧的办理。/在SQLServer中主要有三种方式导入导出数据:使用调用命令行工具BCP办理数据;使用数据变换服务法各有其特色,下边就它们的主要特色进行比较。Transact-SQL对数据进行办理;(DTS)对数据进行办理。这三种方-一、使用方式的比较1.使用T

2、ransact-SQL进行数据导入导出我们很简单看出,Transact-SQL方法就是经过SQL语句方式将相同或不一样种类的数据库中的数据相互导入导出或许聚集在一处的方法。假如是在不一样的SQLServer数据库之间进行数据导入导出,那将是特别简单做到的。一般可使用SELECTINTOFROM和INSERTINTO。使用SELECTINTOFROM时INTO后跟的表一定存在,也就是说它的功能是在导数据以前先成立一个空表,而后再将源表中的数据导入到新建的空表中,这就相当于表的复制(其实不会复制表的索引等信息)。而INSERTINTO的功能是将源数据插入到已经存在的表中,能够使用它进行数据归并,假

3、如要更新已经存在的记录,能够使用UPDATE。SELECT*INTOtable2FROMtable1-table1和table2的表构造相同INSERTINTOtable2SELECT*FROMtable3-table2和table3的表构造相同当在异构数据库之间的进行数据导入导出时,状况会变得复杂得多。第一要解决的是怎样翻开非SQLServer数据库的问题。在SQLServer中供给了两个函数能够依据各样种类数据库的OLEDBProvider翻开并操作这些数据库,这两个函数是OPENDATASOURCE和OPENROWSET。它们的功能基本上相同,不一样之处主要有两点。(1)调用方式不一样。

4、OPENDATASOURCEOPENDATASOURCE的参数有两个,分别是OLEDBProvider和连结字符串。使用只相当于引用数据库或许是服务(关于SQLServer、Oracle等数据库来说)。要想引用此中的数据表或视图,一定在OPENDATASOURCE(.)后进行引用。在SQLServer中经过OPENDATASOURCE查问Access数据库abc.mdb中的table1表SELECT*FROMOPENDATASOURCE(Microsoft.Jet.OLEDB.4.0,Provider=Microsoft.Jet.OLEDB.4.0;DataSource=abc.mdb;Per

5、sistSecurityInfo=False).table1OPENROWSET相当于一个记录集,能够将直接当作一个表或视图使用。在SQLServer中经过OPENROWSETE查问Access数据库abc.mdb中的table1表SELECT*FROMOPENROWSET(Microsoft.Jet.OLEDB.4.0,abc.mdb;admin;,SELECT*FROMtable1)(2)灵巧度不一样。OPENDATASOURCE只好翻开相应数据库中的表或视图,假如需要过滤的话,只好在SQLServer中进行办理。而OPENROWSET能够在翻开数据库的同时对其进行过滤,如上边的例子,在O

6、PENROWSET中能够使用SELECT*FROMtable1对abc.mdb中的数据表进行查问,而OPENDATASOURCE只好引用table1,而没法查问table1。所以,OPENROWSET比较OPENDATASOURCE更为灵巧。-2. 使用命令行BCP导入导出数据好多大型的系统不只是供给了友善的图形用户接口,同时也供给了命令行方式对系统进行控制。在SQLServer中除了能够使用SQL语句对数据进行操作外,还能够使用一个命令行工具BCP对数据进行相同的操作。BCP是鉴于DB-Library客户端库的工具。它的功能十分强盛,BCP能够以并行方式将数据从多个客户端大容量复制到单个表中

7、,进而大大提高了装载效率。但在履行并行操作时要注意的是只有使用鉴于ODBC或SQLOLEDB的API的应用程序才能够履行将数据并行装载到单个表中的操作。BCP能够将SQLServer中的数据导出就任何OLEDB所支持的数据库的,以下边的语句是将authors表导出到excel文件中。bcppubs.dbo.authorsoutc:temp1.xls-c-q-SGNETDATA/GNETDATA-Usa-PpasswordBCP不单能够经过命令行履行,同时也能够经过SQL履行,这需要一个系统储存过程xp_cmdshell来实现,如上边的命令可改写为以下形式。EXECmaster.xp_cmdsh

8、ellbcppubs.dbo.authorsoutc:temp1.xls-c-q-SGNETDATA/GNETDATA-Usa-Ppassword-3. 使用数据变换服务(DTS)导入导出数据DTS是SQLServer中导入导出数据的核心,它除有拥有SQL和命令行工具BCP相应的功能外,还能够灵巧地经过VBScript、JScript等脚本语言对数据进行查验、净化和变换。SQLServer为DTS供给了图形用户接口,用户能够使用图形界面导入导出数据,并对数据进行相应的办理。同时,DTS还以com组件的形式供给编程接口,也就是说任何支持com组件的开发工具都能够利用com组件使用DTS所供给的功

9、能。DTS在SQLServer中能够保留为不一样的形式,能够是包的形式,也能够保留成VisualBasic源程序言件,这样只需在VB中编译便能够使用DTScom组件了。DTS和其余数据导入导出方式最大的不一样就是它能够在办理数据的过程中对每一行数据进行深度办理。以下是一段VBScript代码,这段代码在处DTS理每一条记录时履行,DTSDestination表示目标志录,DTSSource表示源记录,在办理“婚姻状况”时,将源记录中的“婚姻状况”中的0或1变换成目标志录中“已婚”或“未婚”。FunctionMain()DTSDestination(姓名)=DTSSource(姓名)DTSDes

10、tination(年纪)=DTSSource(年纪)IfDTSDestination(婚姻状况)=1ThenDTSDestination(婚姻状况)=已婚ElseDTSDestination(婚姻状况)=未婚EndIfMain=DTSTransformStat_OKEndFunction上述的三种数据导入导出方法各有其利害,它们之间的相互比较如图1如示。-B二、性能的比较使用Transact-SQL方式。假如是可是使用OPENDATASOURCE操作数据库时速度会慢一些。SQLServer数据库之间的导入导出,速度将特别快,和OPENROWSET方法利用OLEDBProvider翻开并使用BCP命令方式。假如不需要对数据进行考证等操作的话,使用它仍是特别快的,这是因为它的内部使用c接口的DB-library,所以在操作数据库时速度有很大的提高。使用DTS方式导数据应当是最好的方式了。因为它整合了MicrosoftUniversalDataAccess技术与MicrosoftActiveX技术,所以不单能够灵巧地办理数据,并且在数据导入导出的效率是特别高的。-

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 中学教育 > 其它中学文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号