主页 > 知识库 > SQL Server数据库中批量导入数据的2种方法

SQL Server数据库中批量导入数据的2种方法

热门标签:台湾外呼系统软件 地图标注可以编辑地名吗 南通智能外呼系统怎么样 南京怎么申请400这种电话 乐昌电话机器人 真3地图标注 濮阳清丰400开头的电话申请 地图标注跑线下市场 疫情时期电话机器人

在软件项目实施的时候,数据导入一直是项目人员比较头疼的问题。其实,在SQL Server中集成了很多成批导入数据的方法。有些项目实施顾问头疼的问题,在我们数据库管理员眼中,是小菜一碟。现在的重点就是,如何让用户了解这些方法,让数据导入变得轻松一些。相信以下方法大家都用过了,温故而知新哈,如果有更好的方法希望大家都提出来~

一、使用Select Into语句

若企业数据库都采用的是SQL Server数据库的话,则可以利用Select Into语句来实现数据的导入。Select Into语句,他的作用就是把数据从另外一个数据库中查询出来,然后加入到某个用户指定的表中。

在使用这条语句的时候,需要注意几个方面的内容。

1、需要在目的数据库中先建立相关的表。如想把进销存系统数据库(SQLServer)中的产品信息表(Product)导入到ERP系统中的产品信息表(M_Product)中。则前期是在ERP系统的数据库中已经建立了这张产品信息表。

2、这种方法只复制表中的数据,而不复制表中的索引。如在进销存系统数据中的产品信息表中,在产品编号、产品种类等字段上建立了索引。则利用Select Into语句把数据复制到ERP系统的表中的时候,只是复制了数据内容的本身,而不会复制索引等信息。

3、这条语句使用具有局限性。一般情况下,这只能够在SQL Server数据库中采用。不过,对于SQL Server不同版本的数据库,如2008或者2003,还都是兼容的。若需要导入的对象数据库不是SQL Server的,则需要采用其他的方法。

4、采用这条语句的话,在目的表中必须不存在数据。否则的话,目的表中的数据会被清除。也就是说,这个语句不支持表与表数据的合并。在SQL Server中,有一条类似的语句,可以实现这个功能。这条语句就是:Insert Into。他的作用就是把另外一张表中的数据插入到当前表中。若用户想要的时表与表数据的合并,则可以采用这条语句。两者不能够混淆使用,否则的话,很容 易导致数据的丢失。

5、以上两条语句都支持兼容的不同类型的数据类型。如在原标中,某个字段的数据类型是整数型,但是在目的表中这个字段的数据类型则是浮点型,只要这个两个数据类型本来就兼容的,则在导入的时候,数据库是允许的。

另外再补上一个小技巧:

我们想复制表a的所有字段名到一个新表b的时候,可以使用以下方法:

1)select * into b from a where 1>1 (仅SQL Server可用)

2)select top 0 * into b from a

二、利用Excel等中间工具进行控制

虽然第一种方法操作起来比较简单,但是其也有一些缺点。如他只支持同一种类型的数据库;不能够对数据进行过多的干预等等。一般情况下,若用户原数据准确度比较高,不需要过多的修改就可以直接拿来用的话,则笔者就已采用第一种方式。

但是,若在原数据库中,数据的准确度不是很高,又或者,有很多数据是报废的。总之,需要对原数据库的数据进行整理,才能够使用的情况,我不建议先导入进去,再进行更改。我在遇到这种情况时,喜欢利用Excle作为中间工具。也就是说,先把数据中原数据库中导到Excle中。有些数据库,如 Oracle数据库,他不支持Excle格式。但是,我们可以把它导为CSV格式的文件。这种文件Excle也可以打得开。

然后,再在Excle中,对记录进行修改。由于Excle是一个很强的表格处理软件,所以,其数据修改,要比在数据库中直接修改来得方便,来得简 单。如可以利用按时间排序等功能,把一些长久不用的记录清楚掉。也可以利用替换等功能,把一些不规范的字符更改掉。这些原来在数据库中比较复杂的任务,在 Excle等工具中都可以轻松的完成。

等到表中的内容修改无误后,数据库管理员就可以把Excle表格中的文件直接导入到SQL Server数据库中。由于SQL Server与Excel是同一个父母生的,所以,他们之间的兼容性很好。在Sql Server中提供了直接从Excel文件中导入数据的工具。

虽然这要借助中间工具导入数据,但是,因为其处理起来方便、直观,所以,我在大部分时候都是采用这种方式。最后,再附上如何让Excel表格在数据库中能查看到的相关代码:

exec sp_addlinkedserver 'excel','ex','Microsoft.Jet.OLEDB.4.0','C:\Documents and Settings\Administrator\桌面\abc.xls',null,'Excel 5.0' --创建一个名为excel的连接服务,可以查看到abc.xls里面的内容

EXEC sp_addlinkedsrvlogin 'excel', 'false', 'sa', 'Admin', NULL --创建一个映射以允许 SQL Server 登录 sa 使用 Excel 登录 Admin 连接到 excel,并且没有密码

--exec sp_dropserver 'excel' --删除连接

select * from excel...Sheet1$ --查看Excel的Sheet1表里面的内容

小提示:Excel表格里面的数据,必须先去除空格,不然有可能由于空格的原因,导致数据的不一致。Excel表格的命名,要设置为abc.xls,并且放在桌面上。打开指定的Excel表格的时候,不能在数据库中查看其数据,不然数据库会报错。

有时候,选择多了,用户反而不知道如何下手。笔者平时最喜欢采用的是第二种处理方式。它比较直观,而且,可以对数据进行成批的更改与整理。但是,其缺陷就是效率比较低,特别是Excle软件对于处理大量记录的时候,速度比较慢。

所以在使用的过程中,根据个人习惯、喜好选择自己熟练掌握的进行操作,但也要具体问题具体分析。

您可能感兴趣的文章:
  • SQL SERVER性能优化综述(很好的总结,不要错过哦)
  • MySQL日期数据类型、时间类型使用总结
  • SQL Server数据库入门学习总结
  • SQL Server 数据库备份和还原认识和总结 (一)
  • Mysql跨表更新 多表update sql语句总结
  • sqlserver、Mysql、Oracle三种数据库的优缺点总结
  • Mysql中的排序规则utf8_unicode_ci、utf8_general_ci的区别总结
  • SQLite3中自增主键相关知识总结
  • 重装MySQL最后一步失败的完美解决方案(经验总结)
  • 21条MySQL优化建议(经验总结)
  • 总结一周内学习的Sql经验(一)

标签:马鞍山 通辽 河北 陕西 阿里 南京 福建 广安

巨人网络通讯声明:本文标题《SQL Server数据库中批量导入数据的2种方法》,本文关键词  SQL,Server,数据库,中,批量,;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 下面列出与本文章《SQL Server数据库中批量导入数据的2种方法》相关的同类信息!
  • 本页收集关于SQL Server数据库中批量导入数据的2种方法的相关信息资讯供网民参考!
  • 推荐文章