Sql Server数据库导入Excel、txt数据详解,新人必看
转自个人原创 https://blog.csdn.net/qq_15170495/article/details/104591606
数据库的要想导入数据,列的映射很是关键,只有列名匹配好,系统才知道如何去导入。
我们导入数据通常用到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),
)
Sql Server数据库导入Excel、txt数据详解,新人必看的更多相关文章
- 向SQL Server中导入Excel的数据
1. 手动界面导入Excel数据 同 https://jingyan.baidu.com/article/ce09321b9a0e252bff858ff9.html 首先打开并登陆sql serve ...
- SQL Server数据库PIVOT函数的使用详解(一)
http://database.51cto.com/art/201108/285250.htm SQL Server数据库中,PIVOT在帮助中这样描述滴:可以使用 PIVOT 和UNPIVOT 关系 ...
- SQL Server数据库PIVOT函数的使用详解(二)
动态的行转列 原理就是 把需要转成列的行拼出来 DECLARE @fieldName VARCHAR(); SET @fieldName=''; SELECT @fieldName = @fieldN ...
- 清空SQL Server数据库中所有表数据的方法(转)
清空SQL Server数据库中所有表数据的方法 其实删除数据库中数据的方法并不复杂,为什么我还要多此一举呢,一是我这里介绍的是删除数据库的所有数据,因为数据之间可能形成相互约束关系,删除操作可能陷入 ...
- 清空SQL Server数据库中所有表数据的方法
原文:清空SQL Server数据库中所有表数据的方法 其实删除数据库中数据的方法并不复杂,为什么我还要多此一举呢,一是我这里介绍的是删除数据库的所有数据,因为数据之间可能形成相互约束关系,删除操作可 ...
- EF Core中,通过实体类向SQL Server数据库表中插入数据后,实体对象是如何得到数据库表中的默认值的
我们使用EF Core的实体类向SQL Server数据库表中插入数据后,如果数据库表中有自增列或默认值列,那么EF Core的实体对象也会返回插入到数据库表中的默认值. 下面我们通过例子来展示,EF ...
- MySQL数据库使用mysqldump导出数据详解
mysqldump是mysql用于转存储数据库的实用程序.它主要产生一个SQL脚本,其中包含从头重新创建数据库所必需的命令CREATE TABLE INSERT等.接下来通过本文给大家介绍MySQL数 ...
- SQL Server日期时间格式转换字符串详解
本文我们主要介绍了SQL Server日期时间格式转换字符串的相关知识,并给出了大量实例对其各个参数进行对比说明,希望能够对您有所帮助. 在SQL Server数据库中,SQL Server日期时间格 ...
- SQL Server 2005导入Excel表问题
EXCEL导入到SQL Server经常出现“文本被截断,或者一个或多个字符在目标代码页中没有匹配项” 原因: SQL Server的导入导出为了确定数据表的字段类型,取excel文件的前8行来判别. ...
随机推荐
- java零基础自学网站分享
俗话说工欲善其事,必先利其器,今天给大家分享一个java自学网站:how2j,这是一个有十年淘宝工作经验大牛的制作的网站,距离现在已经有三四年了,这个网站包含的知识非常的多,从基础的环境变量配置一直到 ...
- Eclipse Mac OS 安装 最新版 Subversion插件subclipse
subclipse 目前全部转移到github 官方地址 https://github.com/subclipse/subclipse/wiki Eclipse mac版 安装 最新版svn插件sub ...
- nginx日志、nginx日志切割、静态文件不记录日志和过期时间
2019独角兽企业重金招聘Python工程师标准>>> 12.10 Nginx访问日志 日志格式 vim /usr/local/nginx/conf/nginx.conf //搜索l ...
- BurpSuite 扩展开发[1]-API与HelloWold
园长 · 2014/11/20 15:08 0x00 简介 BurpSuite神器这些年非常的受大家欢迎,在国庆期间解了下Burp相关开发并写了这篇笔记.希望和大家分享一下JavaSwing和Burp ...
- 可运行的Java RMI示例和踩坑总结
简述 资料参考: https://docs.oracle.com/javase/tutorial/rmi/overview.html https://blog.csdn.net/bigtree_372 ...
- 题解 AT4867 【[ABC155D] Pairs】
题目 两次二分 首先对ans进行二分,在\([-10^{18},10^{18}]\)之间 考虑怎么check 对于每个ans,枚举每个\(a_i\),二分查找有几个\(a_j\),使得\(a_i\ti ...
- eclipse手动添加SVN插件
最近使用eclipse时,用help下自动下载更新svn总是出错,网上找到手动安装方法,记录下一种可行的 1.手动下载svn插件(百度SVNsite-1.8.18) 2.将下载好的SVNsite-1. ...
- Java实现功能简单的学生管理系统(附带源代码)
这几天Java学了点新的知识,打算要用这些知识做一个比较简单的管理系统,实战一下子,代码中的功能简洁,可能不多,但是作为一个练手来了解一个项目是怎么样一点一点思考的还是不错的 一.代码中要实现的功能 ...
- MySQL存储过程举例
涉及循环.动态sql等主要的MySQL存储过程知识. 需求: 遍历所有[test_ondev_[0-9]]开头的表,将其中的所有数据按表中的col字段存储到[test_ondev_history_ + ...
- Eating Everything Efficiently(反向dp)
传送门 取最大值即可.用拓扑,dfs都可以实现 #include <bits/stdc++.h> using namespace std; const int maxn=500009; i ...