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