每次我尝试将 Excel 文件导入 SQL Server 时,都会遇到特定错误。当我尝试编辑映射时,所有数字字段的默认值都是 float 。我的表中的所有字段都没有小数,并且它们不是货币数据类型。它们只是 8 位数字。但是,由于我不希望我的主键在是 int 时存储为 float,我该如何解决这个问题?它给了我某种截断错误,如果需要,我会发布屏幕截图。这是一个常见问题吗?
应该注意的是,我无法导入 Excel 2007 文件(我想我已经找到了解决办法),但即使当我尝试导入 .xls 文件时,每个包含数字的值都会自动导入为 float ,并且当我尝试更改它,但出现错误。
最佳答案
SSIS 不会隐式转换数据类型,因此您需要显式地进行转换。 Excel 连接管理器只能处理几种数据类型,并且它会尝试根据文件的前几行进行最佳猜测。这完全是documented在 SSIS 文档中。
您有多种选择:
- 将目标数据类型更改为浮点型
- 使用导入向导加载数据类型为 float 的“临时”表,然后使用
CAST
或CONVERT
INSERT
到实际目标表中> 转换数据 - 创建 SSIS 包并使用 Data Conversion转换以转换数据
您可能还想注意 Import Wizard documentation 中的注释关于数据类型映射。
关于sql-server - 从 Excel 导入到 SQL Server 2008 时转换数据类型时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9808371/