sql-server - 从 Excel 导入到 SQL Server 2008 时转换数据类型时出错

标签 sql-server sql-server-2008

每次我尝试将 Excel 文件导入 SQL Server 时,都会遇到特定错误。当我尝试编辑映射时,所有数字字段的默认值都是 float 。我的表中的所有字段都没有小数,并且它们不是货币数据类型。它们只是 8 位数字。但是,由于我不希望我的主键在是 int 时存储为 float,我该如何解决这个问题?它给了我某种截断错误,如果需要,我会发布屏幕截图。这是一个常见问题吗?

应该注意的是,我无法导入 Excel 2007 文件(我想我已经找到了解决办法),但即使当我尝试导入 .xls 文件时,每个包含数字的值都会自动导入为 float ,并且当我尝试更改它,但出现错误。

/image/UzCE1.jpg

最佳答案

SSIS 不会隐式转换数据类型,因此您需要显式地进行转换。 Excel 连接管理器只能处理几种数据类型,并且它会尝试根据文件的前几行进行最佳猜测。这完全是documented在 SSIS 文档中。

您有多种选择:

  • 将目标数据类型更改为浮点型
  • 使用导入向导加载数据类型为 float 的“临时”表,然后使用 CASTCONVERTINSERT 到实际目标表中> 转换数据
  • 创建 SSIS 包并使用 Data Conversion转换以转换数据

您可能还想注意 Import Wizard documentation 中的注释关于数据类型映射。

关于sql-server - 从 Excel 导入到 SQL Server 2008 时转换数据类型时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9808371/

相关文章:

sql - 如何将 Varchar 日期转换为实际日期?

c# - 组合、幂集 不知道从哪里开始

sql - 在 SQL Server 中转换为具有特殊字符名称的 XML

java - DATENAME(q, getDate()) 在 MS sql server 中如何工作?

c# - 在 SQL Server 和 C# 中键入 "Time"

sql server 触发器引用最后一行

c# - 使用 INNER JOIN 时出现意外的数据库输出

sql - 告诉我有关sql查询两个表的信息

sql - 查看或用户定义的函数?

c# - 如何统计数据库中的公共(public)字段?