飞道的博客

Sql Server数据库导入Excel、txt数据详解,新人必看

494人阅读  评论(0)

Sql Server数据库导入Excel、txt数据详解,新人必看

数据库的要想导入数据,列的映射很是关键,只有列名匹配好,系统才知道如何去导入。
我们导入数据通常用到Sql Server的DTS工具,如图。
首先我们已经建好了一个名为kcdb的数据库,并且创建了三个空表,分别是作者表,期刊表,投稿表。导入数据只需要右击数据库,在“任务”里找到“导入数据”,通常会从Excel表格或者是平面文件txt中导入。

首先,以导入Microsoft Excel为例(包括WPS表格),点击导入数据,在向导中选择好本地文件,类型推荐Microsoft Excel 97-2003。


选择导入位置,本例中导入数据库,所以要登录服务器。服务器选默认登陆的就好,再选择要导入数据的表所在的数据库。这里有两个选项,第一种是全部导入,也是通常选择的方法。第二种是先select进行筛选,再导入“瘦身”后的结果。当不要求全部导入、且表格较大时,推荐此类选项。


接下来是关键,我们要选定需要导入数据的表格,同时点击这两个表,分别点击编辑映射。如图。本例中的Excel带有两个工作表“作者表”“投稿表”,如图。(注意,不是在数据库中新建两个表,而是把导入数据到已知表,否则就选择下面两个选项)
两个表的映射关系如下,我们可以选择对应关系。同时可以看到,一个Excel可以赋值给多个数据库表格,特别地,Excel自带的工作表可以使条理更加清晰。


这里注意类型最好相同,不然导入过程中可能会损失数据,如图是类型不对应的情况。如果想继续执行,可将下方两个“失败”调成“忽略”。
然后是导入txt文件,也就是平面文件,在软件中也可能叫做Flat File Source。由于txt文件不像表格那样有统一的分隔方式,所以自带的内容分隔符各式各样。如图,列分隔符是逗号的时候,会发现分的很乱,经过观察发现##是分隔符,于是将列分隔符改为##。
改为##后,刷新一下可以看到,列名区分的很清楚。
最后导入成功,这就是全过程分解,希望对刚学数据库Sql Server的新人有所帮助。
附:本例中创建表格的sql代码

use kcdb
go

--作者表(ZZB)作者号(zzh) 作者名(zzm) 
create table ZZB
(
	zzh char(4) primary key,
	zzm nvarchar(5) unique,
)
go

-- 期刊表(QKB)期刊号(qkh)期刊名(qkm)类别(lb)版面费(bmf) 
create table QKB
(
	qkh char(4) primary key,
	qkm varchar(20) not null,
	lb char(2) check(lb='是' or lb='否'),
	bmf int,
)
go

--投稿表(TGB)作者号(zzh)期刊号(qkh)
--投稿日期(tgrq) 文章名称(wzmc)审稿结果(sgjg)
create table TGB
(
	zzh char(4) not null,
	qkh char(4) not null,
	tgrq smalldatetime not null default(getdate()),
	wzmc char(50),
	sgjg nchar(6) check(sgjg='通过' or sgjg='未通过') default('未通过'),
	primary key(zzh,qkh,tgrq),
	foreign key (zzh) references ZZB(zzh),
	foreign key (qkh) references QKB(qkh), 
)

转载:https://blog.csdn.net/qq_15170495/article/details/104591606
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场