当前位置:首页 >> 食疗养生

中导入导出数据三方法比计划

2021-09-06 04:01 来源:密山养生网

当我们建立一个数据库时,并且想将分散在各处的不同类型的数据库分类汇总在这个新建的数据库中时,尤其是在进行数据检验、净化和转换时,将会面临很大的挑战。幸好SQL Server为我们提供了强大、丰富的数据导入导出功能,并且在导入导出的同时可以对数据进行灵活的处理。

在SQL Server中主要有三种方式导入导出数据:使用Transact-SQL对数据进行处理;调用命令行工具BCP处理数据;使用数据转换服务(DTS)对数据进行处理。这三种方法各有其特点,下面就它们的主要特点进行比较。

数次上刺42600元一线未果后 一、使用方式的比较

1. 使用Transact-SQL进行数据导入导出

我们很容易看出,Transact-SQL方法就是通过 SQL语句方式将相同或不同类型的数据库中的数据互相导入导出或者汇集在一处的方法。如果是在不同的SQL Server数据库之间进行数据导入导出,那将是非常容易做到的。一般可使用SELECT INTO FROM和INSERT INTO。使用 SELECT INTO FROM时INTO后跟的表必须存在,也就是说它的功能是在导数据之前先建立一个空表,然后再将源表中的数据导入到新建的空表中,这就相当于表的复制(并不会复制表的索引等信息)。而INSERT INTO的功能是将源数据插入到已经存在的表中,可以使用它进行数据合并,如果要更新已经存在的记录,可以使用UPDATE。

SELECT * INTO table2 FROM table1 --table1和table2的表结构相同INSERT INTO table2 SELECT * FROM table3 --table2和table3的表结构相同

当在异构数据库之间的进行数据导入导出时,情况会变得复杂得多。首先要解决的是如何打开非SQL Server数据库的问题。

在SQL Server中提供了两个函数可以根据各种类型数据库的OLE DB Provider打开并操作这些数据库,这两个函数是OPENDATASOURCE和OPENROWSET。它们的功能基本上相同,不同之处主要有两点。

(1) 调用方式不同。

OPENDATASOURCE的参数有两个,分别是OLE DB Provider和连接字符串。使用OPENDATASOURCE只相当于引用数据库或者是服务(对于SQL Server、Oracle等数据库来说)。要想引用其中的数据表或视图,必须在OPENDATASOURCE(...)后进行引用。

在SQL Server中通过OPENDATASOURCE查询Access数据库b中的table1表

SELECT * FROM OPENDATASOURCE(\'EDB.4.0\',\'Provider=EDB.4.0;Data Source=b;Persist Security Info=False\')...table1

OPENROWSET相当于一个记录集,可以将直接当成一个表或视图使用。

在SQL Server中通过OPENROWSETE查询Access数据库b中的table1表

SELECT * FROM OPENROWSET(\'EDB.4.0\', \'b\';\'admin\';\'\',\'SELECT * FROM table1\')

(2) 灵活度不同。

OPENDATASOURCE只能打开相应数据库中的表或视图,如果需要过滤的话,只能在SQL Server中进行处理。而OPENROWSET可以在打开数据库的同时对其进行过滤,如上面的例子,在OPENROWSET中可以使用SELECT * FROM table1对b中的数据表进行查询,而OPENDATASOURCE只能引用table1,而无法查询table1。因此, OPENROWSET比较OPENDATASOURCE更加灵活。

2. 使用命令行BCP导入导出数据

很多大型的系统不仅仅提供了友好的图形用户接口,同时也提供了命令行方式对系统进行控制。在SQL Server中除了可以使用SQL语句对数据进行操作外,还可以使用一个命令行工具BCP对数据进行同样的操作。BCP是基于DB-Library 客户端库的工具。它的功能十分强大,BCP能够以并行方式将数据从多个客户端大容量复制到单个表中,从而大大提高了装载效率。但在执行并行操作时要注意的是只有使用基于 ODBC 或 SQL OLE DB 的 API 的应用程序才可以执行将数据并行装载到单个表中的操作。

BCP可以将SQL Server中的数据导出到任何OLE DB所支持的数据库的,如下面的语句是将authors表导出到Excel文件中

bcp thors out c:\\s -c -q -S\"GNETDATA/GNETDATA\" -U\"sa\" -P\"passWord\"

BCP不仅能够通过命令行执行,同时也可以通过SQL执行,这需要一个系统存储过程xp_cmdshell来实现,如上面的命令可改写为如下形式。

EXEC master..xp_cmdshell \'bcp thors out c:\\s -c -q -S\"GNETDATA/GNETDATA\" -U\"sa\" -P\"passWord\"\'

成都男科重点医院
福州前列腺炎
黄芪生脉饮贵吗功效怎么样
相关阅读
《争》姜还是老的辣,她故意出错,周锐和骆伽双双中计

求职内心剧《碰》根据付遥同名小说第一部,张黎第一部自,陈坤、辛芷蕾领衔主演,王学圻、张子健、刘威葳特邀客串演出,吕中会、王庆祥、郭广平友情客串演出。 《碰》描绘了一幅当代都心青年的求职点滴...

她是一代女神,22岁嫁入豪门却惨淡收场,如今46岁已被人消逝

明确指出上世纪八九十上世纪的澳门电视界,除了世代天王,最深入人心的就让是澳门的一众淑女,无论是邱淑贞还是李嘉欣都给许多人留下了不可磨灭的期待。然而,除了这都曾人尽皆知的澳门老牌淑女外,还有...

原来,爱情从来很难离开过

滴不尽相思血泪抛茉莉,开不完春柳春花满画楼。 美好,就是有一个读懂你的人;宁静,就是有一个愿意陪伴你的人。人总有脆弱的时候,无需实在太多的浪漫和词汇。拜了,有一个拥抱可以借助于;痛了,有一...

“酒瓶、空白、遥控器”成今年乌镇戏剧节青年竞演比赛三金属元素

女记者 黄体军 6年后期28日,湖州舞蹈节中国奥委会发布消息:第九届湖州舞蹈节将于2022年11年后期25日至12年后期4日举办!本届舞蹈节主题为“隆”——顺逆皆境,隆俭由人,不问收获,志在耕耘。 湖州舞蹈节拥...

经历了3次装修,我发现有8样家具全是“绣花枕头”,不实用性还贵

一个家美不美,完了全都跟着房东的美感来走,有些时候不是我们品位不好,而是有些设计就更差看,跟风去买来了,到手找到完了全都是两回事,被陨了还被人真是屋里箱修得一般般,这可确实有苦真是不出。 ...

32岁杨幂,30岁杨颖,36岁王心凌路人照,网友:扎实重要

在这个P图颇高效率日益发达的时代,说是美人我们实际上分不清楚。若是身边的好朋友我们还能分辨一下说是,对于影星们,我们很难在现实生活中的见到。不过经常我们可以看得见一些影星的碰巧照,不看不想...

友情链接