zoukankan      html  css  js  c++  java
  • 将Excel数据导入到SqlServer及导入时数据类型转换失败解决方案

    将数据导入到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型

    1.  
      alter table dbo.Sheet1$
    2.  
      alter column UserId int null
    • 1
    • 2

    3)把dbo.Sheet1$表中的数据追加到dbo.UserInfo表中
    右击数据库->任务->导入数据->下一步,
    设置数据源为SQLServer Native Client 10.0->输入服务器名称->身份验证->选择源数据库->下一步,
    设置目标为SQLServer Native Client 10.0->输入服务器名称->身份验证->选择目标数据库->下一步,
    选择第一项->下一步,
    选择源数据和目标->下一步(源中列出的是源数据中的表,目标中列出的是目标数据库中的表),
    这里写图片描述
    最后一步,追加成功。
    这里写图片描述

  • 相关阅读:
    容斥原理算法总结(bzoj 2986 2839)
    网络流系列算法总结(bzoj 3438 1061)
    bzoj 2746: [HEOI2012]旅行问题 AC自动机fail树
    bzoj 3283: 运算器 扩展Baby Step Giant Step && 快速阶乘
    计算几何考场绘图技巧
    bzoj 1845: [Cqoi2005] 三角形面积并 扫描线
    bzoj 3784: 树上的路径 堆维护第k大
    BZOJ 1231: [Usaco2008 Nov]mixup2 混乱的奶牛
    BZOJ 1112: [POI2008]砖块Klo
    BZOJ 1003: [ZJOI2006]物流运输trans DP+最短路
  • 原文地址:https://www.cnblogs.com/linjincheng/p/13297220.html
Copyright © 2011-2022 走看看