欢迎来到天天文库
浏览记录
ID:26989665
大小:365.00 KB
页数:18页
时间:2018-11-30
《数据库导入导出技术》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、当我们建立一个数据库时,并且想将分散在各处的不同类型的数据库分类汇总在这个新建的数据库中时,尤其是在进行数据检验、净化和转换时,将会面临很大的挑战。幸好SQLServer为我们提供了强大、丰富的数据导入导出功能,并且在导入导出的同时可以对数据进行灵活的处理。在SQLServer中主要有三种方式导入导出数据:使用Transact-SQL对数据进行处理;调用命令行工具bcp处理数据;使用数据转换服务(DTS)对数据进行处理。这三种方法各有其特点,下面就它们的主要特点进行比较。一、使用方式的比较1.使用Transact-SQL进行数据导入导出我们很容易看出,Transact-S
2、QL方法就是通过SQL语句方式将相同或不同类型的数据库中的数据互相导入导出或者汇集在一处的方法。如果是在不同的SQLServer数据库之间进行数据导入导出,那将是非常容易做到的。一般可使用SELECTINTOFROM和INSERTINTO。使用SELECTINTOFROM时INTO后跟的表必须存在,也就是说它的功能是在导数据之前先建立一个空表,然后再将源表中的数据导入到新建的空表中,这就相当于表的复制(并不会复制表的索引等信息)。而INSERTINTO的功能是将源数据插入到已经存在的表中,可以使用它进行数据合并,如果要更新已经存在的记录,可以使用UPDATE。SELECT
3、*INTOtable2FROMtable1--table1和table2的表结构相同INSERTINTOtable2SELECT*FROMtable3--table2和table3的表结构相同当在异构数据库之间的进行数据导入导出时,情况会变得复杂得多。首先要解决的是如何打开非SQLServer数据库的问题。在SQLServer中提供了两个函数可以根据各种类型数据库的OLEDBProvider打开并操作这些数据库,这两个函数是OPENDATASOURCE和OPENROWSET。它们的功能基本上相同,不同之处主要有两点。(1)调用方式不同。OPENDATASOURCE的参数有
4、两个,分别是OLEDBProvider和连接字符串。使用OPENDATASOURCE只相当于引用数据库或者是服务(对于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;Persi
5、stSecurityInfo=False')...table1OPENROWSET相当于一个记录集,可以将直接当成一个表或视图使用。在SQLServer中通过OPENROWSETE查询Access数据库abc.mdb中的table1表SELECT*FROMOPENROWSET('Microsoft.Jet.OLEDB.4.0','abc.mdb';'admin';'','SELECT*FROMtable1')(2)灵活度不同。OPENDATASOURCE只能打开相应数据库中的表或视图,如果需要过滤的话,只能在SQLServer中进行处理。而OPENROWSET可以在打开数
6、据库的同时对其进行过滤,如上面的例子,在OPENROWSET中可以使用SELECT*FROMtable1对abc.mdb中的数据表进行查询,而OPENDATASOURCE只能引用table1,而无法查询table1。因此,OPENROWSET比较OPENDATASOURCE更加灵活。2.使用命令行bcp导入导出数据很多大型的系统不仅仅提供了友好的图形用户接口,同时也提供了命令行方式对系统进行控制。在SQLServer中除了可以使用SQL语句对数据进行操作外,还可以使用一个命令行工具bcp对数据进行同样的操作。bcp是基于DB-Library客户端库的工具。它的功能十分强大
7、,bcp能够以并行方式将数据从多个客户端大容量复制到单个表中,从而大大提高了装载效率。但在执行并行操作时要注意的是只有使用基于ODBC或SQLOLEDB的API的应用程序才可以执行将数据并行装载到单个表中的操作。bcp可以将SQLServer中的数据导出到任何OLEDB所支持的数据库的,如下面的语句是将authors表导出到excel文件中bcppubs.dbo.authorsoutc:temp1.xls-c-q-S"GNETDATA/GNETDATA"-U"sa"-P"password"bcp不仅能够通过命令行执行,同时也
此文档下载收益归作者所有