将Excel数据导入到SqlServer及导入时数据类型转换失败解决方案
2017-10-13 17:08
369 查看
将数据导入到SqlServer是很常用的一个功能,而Excel数据源又是数据导入功能的常用数据源,在使用时遇到一些问题,记录下来防止大家走弯路。
Excel数据:
2、设置数据源为Microsoft Excel->选择文件路径->下一步
3、身份验证->选择目标数据库->下一步
4、选择第一项->下一步
5、选择源数据和目标->下一步
6、导入结果
如果源数据与目标表所需数据的格式相匹配,那即可成功导入。
但往往会有数据不匹配的情况,例如:
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型
2
3)把dbo.Sheet1$表中的数据追加到dbo.UserInfo表中
右击数据库->任务->导入数据->下一步,
设置数据源为SQLServer Native Client 10.0->输入服务器名称->身份验证->选择源数据库->下一步,
设置目标为SQLServer Native Client 10.0->输入服务器名称->身份验证->选择目标数据库->下一步,
选择第一项->下一步,
选择源数据和目标->下一步(源中列出的是源数据中的表,目标中列出的是目标数据库中的表),
最后一步,追加成功。
UserInfo表结构以及Excel数据截图
UserInfo表结构:Excel数据:
SqlServer导入数据
1、右击数据库->任务->导入数据->下一步2、设置数据源为Microsoft Excel->选择文件路径->下一步
3、身份验证->选择目标数据库->下一步
4、选择第一项->下一步
5、选择源数据和目标->下一步
6、导入结果
如果源数据与目标表所需数据的格式相匹配,那即可成功导入。
但往往会有数据不匹配的情况,例如:
数据转换失败解决方案
1、Double无法转换为nvarcharUserInfo表中的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 null1
2
3)把dbo.Sheet1$表中的数据追加到dbo.UserInfo表中
右击数据库->任务->导入数据->下一步,
设置数据源为SQLServer Native Client 10.0->输入服务器名称->身份验证->选择源数据库->下一步,
设置目标为SQLServer Native Client 10.0->输入服务器名称->身份验证->选择目标数据库->下一步,
选择第一项->下一步,
选择源数据和目标->下一步(源中列出的是源数据中的表,目标中列出的是目标数据库中的表),
最后一步,追加成功。
相关文章推荐
- 将Excel数据导入到SqlServer及导入时数据类型转换失败解决方案
- sqlserver 在将 nvarchar 值 'XXX' 转换成数据类型 int 时失败
- excel中电话记录数据导入到sqlserver,字符串电话或者数字电话为null的解决方案!
- poi读取Excel文件并进行数据类型转换实例
- 无法将类型为“Excel.ApplicationClass”的 COM 对象强制转换为接口类 型“Excel._Application”。此操作失败的原因是对 IID 为“{000208D5 -0000-0000-C000-000000000046}”的接口的 COM 组件调用 QueryInterface 因以下错误而失败: 加载类型库/DLL 时出错。 (异常来 自 HRESULT:
- 在将 varchar 值 'xinpian' 转换成数据类型 int 时失败?
- 利用Aspose.Cell控件导入Excel非强类型的数据
- 精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
- 关于sql where id in 转换成数据类型 int 时失败
- 精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
- 如何从SQLServer类型转换成Oracle对应的数据类型
- 关于sql where id in 转换成数据类型 int 时失败
- 精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
- 精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
- 使用SQL Server导入Excel数据时, 有些数据会自动变成NULL的解决方案
- [SQL]不要让SQLServer帮你自动转换SQL命令中的数据类型
- Java 读取Excel表格数据日期类型转换
- OLDB读取excel的数据类型不匹配的解决方案(ZT)
- OLEDB读取excel的数据类型不匹配的解决方案
- 在将varchar值转换成数据类型int时失败