SQL Server数据库中批量导入数据
在软件项目实施的时候,数据导入一直是项目人员比较头疼的问题。其实,在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表格的时候,不能在数据库中查看其数据,不然数据库会报错。
转载于:https://www.cnblogs.com/yangyy753/archive/2011/12/06/2277794.html
SQL Server数据库中批量导入数据相关推荐
- SQL Server数据库中批量导入数据的四种方法总结
在软件项目实施的时候,数据导入一直是项目人员比较头疼的问题.其实,在SQL Server中集成了很多成批导入数据的方法.有些项目实施顾问头疼的问题,在我们数据库管理员眼中,是小菜一碟.现在的重点就是, ...
- 清空SQL Server数据库中所有表数据的方法(转)
清空SQL Server数据库中所有表数据的方法 其实删除数据库中数据的方法并不复杂,为什么我还要多此一举呢,一是我这里介绍的是删除数据库的所有数据,因为数据之间可能形成相互约束关系,删除操作可能陷入 ...
- 将word文档数据导入到sql server数据库中
我现在的需求是这样的,需要将这些题目插入到sql server数据库中. 并且要对应起来,一开始在网上找了很多方法,都没有找到合适的. 后面感觉,还是自己写一个比较好,因为只有自己写的,才是最适合你的 ...
- 通过VB向SQL Server数据库中录入数据
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) 一.数据录入 通过VB向SQL Se ...
- 利用Visual Studio Project自动将数据加载到SQL Server数据库中
介绍 (Introduction) A few months back, I encountered an interesting challenge at a client site. For th ...
- VS用SSIS实现SQL Server数据库与Excel表格数据的相互导入
VS用SSIS实现SQL Server数据库与Excel表格数据的相互导入 打开Visual Studio 2019,新建Integration Services项目 拖一个数据流任务到控制流中 切换 ...
- C#同步SQL Server数据库中的数据--数据库同步工具[同步已有的有变化的数据]
C#同步SQL Server数据库中的数据--数据库同步工具[同步已有的有变化的数据] 1. C#同步SQL Server数据库Schema 2. C#同步SQL Server数据库中的数据--数据库 ...
- 《项目经验》--简单三层使用DataTable向数据库表批量导入数据---向SqlServer多张张表中导入数据
前面已经介绍过如何向数据库的一张表中批量导入数据,详情见博客<项目经验---简单三层使用DataTable向数据库表批量导入数据---向SqlServer一张表中导入数据>:本文主要介绍如 ...
- 从sqlserver中数据写入mysql_[SQL Server]SQL Server数据库中如何返回INSERT INTO语句插入/写入数据后的记录值(比如ID等)?...
问题描述 SQL Server数据库中,有时候当我们使用INSERT INTO语句写入数据后,需要返回写入数据对应的自增ID或者GUID,以便根据此记录进行后续的操作.那么SQL语句如何实现返回记录值 ...
最新文章
- 前端见微知著JavaScript基础篇:你所不知道的apply, call 和 bind
- 人脸检测--SSH: Single Stage Headless Face Detector
- Quartz学习笔记
- kali桥接模式无法上网_听没听过用手机接路由器上网?
- SVN服务器与客户端的配置
- 文本转换成htmldocument
- mysql慕课网笔记_mysql学习笔记
- 对一篇单细胞RNA综述的评述:细胞和基因质控参数的选择
- MySQL笔记-group by和聚合函数的使用
- 关于Cococs中的CCActionEase(下)
- 如何删除Mac OS X上隐藏的文件?
- 如何高效做问卷调查?
- TensorFlow中的小知识:tf.flags.DEFINE_xxx()
- 使用Xcode的Instruments检测内存泄漏
- Xshell连接远程堡垒机【服务器】
- 2020牛客暑期多校训练营(第六场)E——Easy Construction
- 想做编程者必看:三朝元老经验
- 浏览器大战中的搜狗浏览器
- 北京大学 李胜 计算机,rasterization-北京大学计算机系图形与交互技术室.pdf
- 韩国计算机硕士累吗,在韩国读研究生有多心累...
热门文章
- 计算机专业考研不想走编程,考研的这些弯路,不要走,好吗?
- springboot templates读取不到_精通 Spring Boot 系列 04
- MySQL备份shell_shell---mysql备份
- 重命名master分支
- texstudio自动拼写检测_飞桨PaddleDetection物体检测统一框架详解
- arcgis如何连接Oracle,arcgis直连oracle数据库
- 用python实现(1.求输入的百倍,十位,个位数;2.输入a,b和ab间夹角,计算c边长;3.计算两点间曼哈顿距离;4.计算给定数据的几何平均数;5.计算向量的L1和L2范数)
- oracle 二进制与运算,Oracle怎么操作进行二进制的比对
- 20220227:力扣第282场周赛(上)
- markdown使用markdown-viewer生成目录_谷歌浏览器查看m文件