您的位置:首页 > 数据库

将Excel数据导入到SqlServer及导入时数据类型转换失败解决方案

2017-10-13 17:08 369 查看
将数据导入到SqlServer是很常用的一个功能,而Excel数据源又是数据导入功能的常用数据源,在使用时遇到一些问题,记录下来防止大家走弯路。

UserInfo表结构以及Excel数据截图

UserInfo表结构:



Excel数据:



SqlServer导入数据

1、右击数据库->任务->导入数据->下一步



2、设置数据源为Microsoft Excel->选择文件路径->下一步



3、身份验证->选择目标数据库->下一步



4、选择第一项->下一步



5、选择源数据和目标->下一步



6、导入结果

如果源数据与目标表所需数据的格式相匹配,那即可成功导入。

但往往会有数据不匹配的情况,例如:



数据转换失败解决方案

1、Double无法转换为nvarchar

UserInfo表中的UserName列是nvarchar(20)类型,而Excel表中UserName列的数据是111、222、333,因此被识别为double类型

解决方案:

选中UserName列的数据->数据->分列->下一步->下一步->选择“文本”->完成,再导入时UserName列格式就能匹配上了。





2、Double无法转换为int

UserInfo表中的UserId列是int类型,而Excel表中UserId列的数据2016010、2016011、2016012被识别为double类型

解决方案:

1)导入数据在选择源表和源视图时,不要选择表,那会在数据库中创建一个跟源数据同名的表。





2)把dbo.Sheet1$表中UserId列的数据类型修改为int型

alter table dbo.Sheet1$
alter column UserId int null
1
2
3)把dbo.Sheet1$表中的数据追加到dbo.UserInfo表中

右击数据库->任务->导入数据->下一步,

设置数据源为SQLServer Native Client 10.0->输入服务器名称->身份验证->选择源数据库->下一步,

设置目标为SQLServer Native Client 10.0->输入服务器名称->身份验证->选择目标数据库->下一步,

选择第一项->下一步,

选择源数据和目标->下一步(源中列出的是源数据中的表,目标中列出的是目标数据库中的表),



最后一步,追加成功。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  sql server
相关文章推荐