当前位置: 代码迷 >> Sql Server >> 怎么让Excel导入进数据库的列变成varchar型(或其他字符型)
  详细解决方案

怎么让Excel导入进数据库的列变成varchar型(或其他字符型)

热度:94   发布时间:2016-04-24 10:24:43.0
如何让Excel导入进数据库的列变成varchar型(或其他字符型)?
通过SQLServer Management Studio进行Excel导入,导入后在数据库中默认为float,无法进行匹配工作(匹配的原表为字符型);
我通过修改导入数据库的临时表的列类型,但没有效果。
截图如下:
1、这是Excel导入系统内临时表的列结构:

2、这是临时表的内容:


当我进行匹配时:
select * from _test2 
left join 物料 wl on wl.材料编码=_test2.物资编号

提示如下:
引用
消息 8114,级别 16,状态 5,第 1 行
从数据类型 varchar 转换为 float 时出错。


请教如何设置,可以让Excel导入进系统的列,默认为字符型?
------解决方案--------------------
只能直接在Excel,把整列的单元格格式设置为文本,强制指定该列为字符型。
这是因为如果单元格格式是常规的话,Excel会根据列的内容,自动判断列的数据类型,在这里Excel把该列自动判断为数字,所以导入有问题。
------解决方案--------------------
不要使用float类型,他会使数据失真。。例如,你输入的是1可能系统保存为1.0000000000000000000000000000000001
这就是你无法匹配的原因,如何是唯一,通过此键连接其他表,设置为主键,类型为int

------解决方案--------------------
 在excel中设置列的数据类型为文本,如果还是不行的话,在前8行的该列的数据中前面加 (')分号强制类型为文本。
------解决方案--------------------
在SQL中强制类型转换下

cast(column_name as varchar(20))
cast(column_name as float)

之类的。。
  相关解决方案