【问题标题】:Import data from Excel of type float to varchar in SQL Server 2008在 SQL Server 2008 中将数据从浮点类型的 Excel 导入 varchar
【发布时间】:2011-10-11 05:48:03
【问题描述】:

我在将数据从 Excel 导入 SQL 时遇到问题。在 SQL 的导入向导中,字段的数据类型是浮点数(因为数据包含纯数字、IDNumber、BiometricNumber 和 BankAccountNumber)现在 SQL 中此字段的数据类型是 varchar,并且每当我查询或传输数据时其他表值的格式更改为使用 e+ 数字浮动。有人吗?

【问题讨论】:

  • 您是否尝试过在 Excel 中使用“格式化单元格”?
  • 还没试过,谢谢。
  • 如果有人想知道为什么数据元素 BankAccountNumber 的类型是 FLOAT,请考虑 Excel 的 Access(ACE、Jet 等)SQL 只有一种数字数据类型;)
  • 感谢我遵循 Mi Mee 的建议,并意识到在 excel 中更改该特定列的格式。

标签: sql sql-server-2008 excel


【解决方案1】:

首先,确保您在连接字符串中使用了IMEX=1,并且相关的注册表项值已正确设置。详情请见this article

就我个人而言,我从来没有遇到过科学记数法的问题,但一些人报告了 cmets 中的类似问题,因此可能值得一试。这是我发现的一对:

在 SQL 中,Format([COLUMN NAME], ‘@’) As [COLUMN NAME]

在 Excel 中,列必须被格式化(格式化单元格)为“一般”(不是 格式化为“文本”)。

不过,我不能为他们担保 ;)

【讨论】:

  • 我尝试过格式化为一般格式和文本格式,但 MSSQL 仍然将其设置为浮点数!!!
  • @Huei:但是你有没有设置IMEX=1,适当的设置注册表设置等等?该文章的链接已损坏,但谷歌搜索“IMEX=1”和我的句柄(OneDayWhen)应该会显示更多细节,例如这里:instantpages.ltd.uk/ADODB_WP.htm
【解决方案2】:

当它是“常规”时,我将 excel 列的数据类型更改为“文本”,并且 32 位 SQL Server 导入工具将其选为 nvarchar。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多