四种方法在SQL Server数据库中成批导入数据(2)

作者:kaduo 来源:赛迪网 时间:2009-02-19 17:25:00 

第三:使用数据转换服务导入数据

数据转换服务是SQL Server数据库中提供的一个非常强大的工具。在SQLServer中,数据转换功能有一个图形用户接口,用户可以在图形界面中导入数据,并对数据进行相应的编辑。

另外,数据转换服务还支持COM组件的编程接口。这也就是说,在前台应用程序开发的时候,可以直接调用数据转换服务。让用户通过前台应用系统,而不用在后台数据库系统进行任何的操作,就可以把数据导入数据库系统中去。在前台对数据库系统进行导入,有一个明显的好处,就可以预先对数据的合法性进行检查。如可以利用VB等脚本语言对数据进行检验、净化和一定的转换,以符合目的数据库的需要。

如在员工信息表中的婚姻状况字段,在Oracle数据库系统中,可能是用0或者1来表示婚姻状况。0表示未婚,1表示已婚。而在SQL Server数据库中,则利用Y或者N来表示婚姻状况。Y表示已婚,N表示未婚。在导入数据的时候,若直接把Oracle数据库表中的数据导入到SQL Server数据库中,因为婚姻状况这个字段存储的内容类型不同,所以,不能够直接导。遇到这种情况的话,则就可以在导入数据之前,先利用脚本语言对数据类型进行验证。若不符合要求的,则可以通过脚本语言对数据进行一定的转换,把0转换为N,把1转换为Y等等。

所以,有时候程序员在开发前台应用程序的时候,若要开发数据导入功能的话,我们都是建议采用这个数据转换服务。不但有现成的接口,而且,还可以对数据进行验证与一定程度的转换。另外,数据转换服务的数据导入效率非常的高。即使通过前台程序调用,其性能也比其他方法在同等条件下,要高一个档次。而且,随着数据量的增加,数据转换服务的优势会越来越明显。

不过,在前台应用程序调用数据转换服务的时候,需要注意。数据转换服务提供的COM接口比较复杂,所以,前台程序调用数据转换服务的代码也比较复杂。若再加上一些脚本语言的话,可能处理起来更加的繁琐。故一般只有在大型系统上才会用到这个接口。若数据不多,否则不需要复杂验证与转换的话,利用这个接口是大刀小用,得不偿失。

第四:异构数据库之间的导入导出

虽然第二种、第三种方式都可以完成异构数据库之间数据的导入导出作业。不过,在SQL Server中,还提供了另外一种解决方案。即直接在SQL Server数据库中连接到其他类型的数据库上,然后采用Select Into等语句实现数据的导入作业。

在SQL Server中,提供了两个函数可以帮助我们实现对非SQL Server数据库的连接。这两个函数分别为Opendatesource与Openrowset。他们的功能基本相同,只是在细节上有所差异。

如Opendatesource这个函数至能够打开源数据库的表和视图,而不能够对其进行过滤。若用户只想把源表中的部分数据导入到SQL Server数据库的表中,则不能对源表直接进行过滤。过滤的动作需要在SQL Server数据库中进行。而Openrowset这个函数,可以在打开对方数据库的表或者视图的时候,直接利用Where等条件限制语句对记录进新过滤。为此,在实际应用中,还是Openrowset这个函数使用的频率比较高。

不过由于其需要用户写复杂的参数,而且,又不能够提供复杂的数据验证功能,所以在实际工作中用的并不是很多。在一些小的应用系统中,偶尔还可以见到其的踪影。在一些大的成熟的商业软件中,很少采用这种方式,对数据进行导入。

有时候,选择多了,用户反而不知道如何下手。笔者平时最喜欢采用的是第二种处理方式。他比较直观,而且,可以对数据进行成批的更改与整理。但是,其缺陷就是效率比较低,特别是Excle软件对于处理大量记录的时候,速度比较慢。若这种方式行不通的话,则笔者比较倾向于采用数据转换的处理方式。这个操作起来虽然比较复杂,但是,其可以提供比较复杂的验证,而且可以在图形化的界面中对数据进行修改,同时效率也比较高。

标签:四种方法,SQL,Server数据库,成批导入数据
0
投稿

猜你喜欢

  • 清除浮动新说

    2009-12-25 18:49:00
  • 远古幻想ICON 1套+创作思路

    2007-09-30 20:33:00
  • 观点 2009 年,IE6 走好

    2009-01-04 16:46:00
  • 浅谈 Mousewheel 事件

    2010-08-16 12:37:00
  • ASP自动清除ACCESS数据库的日文字符

    2007-11-28 17:40:00
  • CSS控制鼠标样式变换方法

    2007-11-17 07:58:00
  • dl,dt,dd标签 VS 传统table实现数据列表

    2009-08-02 20:45:00
  • 1500个绚丽主题 谷歌中国个人风格首页发布

    2008-11-12 11:14:00
  • [ASP]利用 xmlhttp 分块上传文件

    2008-07-04 14:14:00
  • WEB前端开发高性能优化之JavaScript优化细节

    2009-06-10 14:38:00
  • asp form 表单验证函数

    2011-04-04 11:10:00
  • 我的页面制作方法

    2008-03-23 13:51:00
  • 前端模板引擎

    2010-07-27 12:33:00
  • asp清空站点缓存

    2009-08-04 18:01:00
  • js验证表单(form)中的单选(radio)值

    2008-03-18 13:23:00
  • SQL Server 压缩日志及数据库文件大小

    2009-05-13 10:29:00
  • 在ASP中用FormatDateTime格式化日期

    2010-08-08 19:16:00
  • JavaScript解决Joseph问题

    2008-06-21 17:11:00
  • 垂直栅格与渐进式行距(上)

    2009-04-01 18:30:00
  • 2个asp防刷新程序代码

    2008-09-28 21:16:00
  • asp之家 网络编程 m.aspxhome.com