将CSV文件导入SSMS时遇格式错误,求解决办法
解决SSMS导入CSV时"Input string was not in a correct format"报错的方案
检查隐藏特殊字符
肉眼确认格式无误不代表没有不可见异常字符(如全角空格、非打印ASCII字符)。用记事本++打开CSV,开启「显示所有字符」功能(视图→显示符号→显示所有字符),核查数值、日期列是否存在异常字符,存在则批量清除。验证字段类型匹配性
确认目标SQL表的字段类型与CSV对应列完全匹配:- 数值型字段(int、decimal等):对应CSV列不能有空值、空格或非数字内容(如货币符号、千分位逗号);
- 日期型字段:CSV日期格式需与SQL默认格式一致(如
yyyy-MM-dd),不一致则在导入向导中手动指定格式。
调整导入向导的类型映射
在导入向导的「选择数据源」步骤后,进入「高级」选项,检查每列的类型映射。若向导错误识别列类型(如把数值列识别为字符串),手动调整为匹配目标表的类型后重新导入。使用T-SQL语句直接导入
绕开导入向导,用BULK INSERT命令精准控制导入逻辑,报错会给出具体行号和列信息,便于定位问题。示例代码:BULK INSERT YourTargetTable FROM 'C:\YourFile.csv' WITH ( FIELDTERMINATOR = ',', ROWTERMINATOR = '\n', FIRSTROW = 2, -- 若CSV包含表头则跳过第一行 CODEPAGE = '65001' -- 适配UTF-8编码 )核查CSV编码格式
若CSV为UTF-8带BOM格式,SSMS导入向导可能识别异常。用记事本打开CSV,另存为「ANSI」编码后再次尝试导入。
内容的提问来源于stack exchange,提问作者kim seol
相关产品推荐
相关产品推荐

