<>数据库导入Excel数据时出错的原因是“截断”和“完整性要求”,别不在意
我只是个学生啊!可能说得不对!这几天在做数据库大作业,当向数据库导入Excel数据时出错了,整个人都快炸了,找了一整天都没发现原因,百度上的答案或者说法没一个能解决的。
原地踏步两天,终于明白了错在哪,并成功导入数据,我觉很多新手都会犯这错误。百度可能找不到答案(有是有的!但是反正我没找到)。一定要看完,耐心往下看。
原因有二:
1)“断截“,这是一种可能。意思就是你在数据库里面建好的表格,有某个属性的长度不够长。请注意,Excel里字符型为varchar(225),它字符型,最大长度为225;当Excel里的数据长度大于你数据库里定义的长度就会出现“断截”,导入不会成功的!所以建表时,请注意你的“列”类型为char时,明确长度,别太短了。
2)“破坏数据库完整性”,你建表时定义了相关表的“外键”或者“外码”,如学生表和成绩表,成绩表的外码是学生表的sno;导入Excel数据时,请注意,如果你要导入Excel成绩表,“数据库里的学生表”里务必事先存有该Excel成绩表要导入的“sno”,不然会复制失败。
有的人说,什么要求数据类型要完全一样!完全是胡说。SQL会自动转换的,不需要一样,比如Excel里的数据是double型,数据库里的是int型,它会自动转换;;最关键的是char类型时,长度是有严格要求的,别太短了,会出现“截断”的。一定要注意完整性。
SQL server 断截的说明可以看看: