通过navicat12倒出数据,文件格式是xls,但在xls修改完数据后再往数据库便导入便报错。此外因为数据量很大,超过24万条数据,但xls格式导出的内容只有6万多数据。不过最后还是解决了。

碰到的问题

  1. xls数据行数支持不足
  2. xlsx和xls使用vlookup函数后报错,找不到对应数据(因为表格上是由绿色三角
  3. 主键约束问题
  4. xlsx格式中日期与数据库中datatime格式不符合
  5. sqlserver自增长列标识导入的时候报错【这个是最坑的一切的源头!

1.xls数据行数支持不足

也是头一次遇到需要面对excel行数不足的问题,数据大约有24万,对2003版,最大行数是65536行,对2007以上版本,最大行数是1048576行

在Excel里用Ctrl+向下方向键可以到达最后一行进行验证。还好xlsx支持百万行数据,在navicat中导出的格式选择xlsx就好了。(导出的时候xlsx文件可能会有问题,报错是在win7上,装的是office2010,换了台win10,office2019再用navicat12导出就没问题了)

2.xlsx和xls使用vlookup函数后报错

因为excel使用vlookup后发现明明可以匹配的数据,但是就是显示匹配结果是#N/A,数据没问题,但是再空格上边有“绿色三角”。

搜一搜后发现是数据异常的意思,也就因为文件格式有变动,所以出现这个问题。 解决的办法也很简单,就是选中所有绿色三角,然后点击提示的这个黄色小叹号。然后点击转换为数字,三角就没有了。之后vlookup函数也正常工作了!

3.主键约束问题

这个问题是通过excel导入的时候发现的,原来是设置了两个属性共同为主键,但是看数据是没问题的,两个属性按照逻辑来讲不会冲突。取消主键约束后(就是点击两个小钥匙就可以取消)数据不再报错。

4.xlsx格式中日期与数据库中datatime格式不符合

取消主键后,结果发现导入的数据确实存在重复值!是日期格式的属性有重复值,都是1900年.....这样的,数据库里边是datatime,但excel表格里边是这样显示的。

应该是数字格式没匹配上。

几番搜索后,得到解决办法,就是点击上图的“其他数字格式”,然后设置一下类型。

这样设置之后再导入就不再报错,并且数据库里边的数据是正常的datatime格式了!

5.Sqlserver自增长列标识导入的时候报错【这个是最坑的一切的源头!

之所以会出现这种需求,是因为我把数据库数据的导入导出来更新想象的太简单了,导出完excel格式数据后就很放心的清除数据库表的数据,可是没想到啊,再导入的时候就报错,发现是因为这个表里边存在“标识列”,就是自增长的一个列,不允许通过excel方式来往里边添加数据。

开始没有意识到标识列字段的重要性,所以强制通过excel导入了数据,就是在导入的时候将excel列与数据库属性的对应关系选择空,这样就可以导入了,不过导入的数据的标识列是自动往后边累加的

在发现表示列的数不一致的时候,会想有没有取消表示列的方法,搜到的方法是通过【增加同名列-复制数据-删标识列】的方法。但既然设置数据库的时候启用了表示列,那必然是有用的。所以pass掉这种方法。后来又发现可以通过充值增加种子的方法重新导入再增,也就是下边第一句SQL,这样就解决了部分问题,另外一部分问题分解成了上边的Q1~Q4也都解决了!

-- 重置表中的标识列的增加起点为1
-- 参数1是表名 参数2是执行类型 RESEED代表重置种子 参数3设置数值
DBCC CHECKIDENT('USERINFO', RESEED,1) -- 清除表的内容 USERINFO 是表名
TRUNCATE TABLE [USERINFO] -- 设置手动插入标识列的值
-- ON 代表启动手动设置 不过这个对insert语句有效 excel测试无果
set identity_insert USERINFO ON

小结

就以这次经历来讲最保险的数据导出是将这个表转存成sql文件,包括数据和表结构!

当然更好的方式是对整个数据进行灾备和定期备份,这个我不太了解,经此一役后要多注意这方面知识的学习了!

EXCEL 导入MSSqlserver数据库报错相关推荐

  1. mysql导出数据库报错,navicat 导入导出数据库报错的解决

    在使用navicat导入导出数据功能时,导出没问题,导入总是报错,还遇到了中文乱码.在网上查了很多资料,比如使用了navicat的数据传输功能,但仍然报错,弄了几个小时都没解决. 最后换了种思路,我直 ...

  2. hive 导入mysql数据库_求助 Hive 导入MYsql 数据库 报错啊

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 sqoop export \ --connect "jdbc:mysql://localhost:3306/emp?characterEncod ...

  3. 数据库用impdp导入时日志报错:ORA-39246, ORA-39059,哪位大神给解答一下

    数据库用impdp导入时日志报错:ORA-39246: 无法在提供的转储文件中定位主表 ORA-39059: 转储文件集不完整,拜请大神指导! 来自 " ITPUB博客 " ,链接 ...

  4. mysql导入数据库报错解决方式

    mysql导入数据库报错解决方式 一.工具导入sql报错 1.一般导入都是使用工具进行导入,但是在导入时候可能会报错,导致导入失败.如下: 2.经过在网上查询,换了几种方式都没有解决. 3.后来和开发 ...

  5. EasyExcel导入的时候报错Caused by: java.lang.NoClassDefFoundError: org/apache/poi/poifs/filesystem/File

    今天用EasyExcel导入的时候报错,如下 com.alibaba.excel.exception.ExcelAnalysisException: java.lang.NoClassDefFound ...

  6. Oracle导入TYPE对象报错ORA-02304

    Oracle导入TYPE对象报错ORA-02304 Type是我们经常使用的数据库对象结构.我们在实际中,可以单独定义type类型,之后在PL/SQL代码或者数据表中使用. 在一个偶然的机会让笔者发现 ...

  7. 数据库报错“system01.dbf需要更多的恢复来保持一致性,数据库无法打开”

    故障描述 故障主要表现为打开数据库时报错,内容为:"system01.dbf需要更多的恢复来保持一致性,数据库无法打开".经过对数据库文件的检测后初步可得出以下结论:sysaux0 ...

  8. 导入sql文件报错:MySQL server has gone away 以及解决方法

    项目场景: 导入sql文件报错:MySQL server has gone away 以及解决方法 问题描述: 在我们使用mysql导入大文件sql时可能会报MySQL server has gone ...

  9. sqoop将oracle数据导入到hive报错:Error: java.io.IOException: SQLException in nextKeyValue

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 问题 一.问题是什么导致的? 二.验证问题 总结 问题 sqoop将oracle数据导入到hive报错:Error: jav ...

  10. oracle解决00302,oracle 导入数据,报错PLS-00302: component 'SET_NO_OUTLINES' must be declared...

    oracle 导入数据,报错PLS-00302: component 'SET_NO_OUTLINES' must be declared . 今天将本机的一个导出的库,导入到中一个oracle数据库 ...

最新文章

  1. Lambda 表达式到底有何用处?如何使用?
  2. PHP做好友关系系统,php社交好友网站
  3. Increasing Subsequence (hard version)
  4. Kotlin 继续助力 Android 开发,并计划涉足更多领域
  5. 成功通过pmp_这就是你为啥要学PMP!!!
  6. 【01背包】最大约数和(jzoj 2126)
  7. junit5和junit4_JUnit 5 –架构
  8. 基于JAVA+Servlet+JSP+MYSQL的个人博客系统
  9. 如何在用户区显示一张位图
  10. mac新手入门:从启动台Launchpad中完全删除应用程序
  11. Windows Server 2008 R2之三管理活动目录数据库
  12. 程序员的悲哀是什么?
  13. java web简单线上游戏_手把手教你用Java实现一个简易联网坦克对战小游戏 !
  14. Generalizing Surrogate-Assisted Evolutionary Computation
  15. 1周上线系统,效率提升100%,宜搭助力阿里巴巴法务数字化升级
  16. Android 打包签名 从生成keystore到完成签名
  17. python怎么接单子平台有哪些_17个Python接私活的平台,总有适合你的,有技术就有收入...
  18. b插到元素a之前python_python面试题(转)
  19. git 修改远端 commit 信息
  20. 无法访问计算机请检查名称的拼写,Win7访问共享文件夹提示“请检查名称的拼写”怎么办?...

热门文章

  1. php经典面试题与答案(转先锋教程网)
  2. 二、Arduino软件下载-安装-测试教程
  3. Github下载 arduino库下载
  4. 机器学习项目实战(一) 鸢尾花
  5. 苹果cms影视源码的安装和使用
  6. 氪8号积木机器人编程_编程机器人怎么选?
  7. java cxf调用wsdl文件_如何使用CXF将 .wsdl 文件变成java文件
  8. 安卓电子书格式_求把 EPUB 转换成 MOBI 的电子书格式转换工具
  9. cmd /c和cmd /k 以及CMD命令
  10. 纯js手写一个element的弹窗,方便修改自己想要的样式