Excel 转 SQL 常见错误与解决
执行生成的 SQL 脚本时可能遇到的典型错误,以及对应的排查和修复方法。
! Invalid column name(无效列名)
原因
Excel 列名与数据库字段名不一致,或列名含空格、特殊字符未正确映射。
解决方法
在工具的列映射区将 Excel 列名改为与数据库完全一致的字段名,注意大小写和空格。
! Conversion failed(数据类型转换失败)
原因
Excel 单元格格式为文本但数据库字段为数值,或日期格式不符合 SQL Server 要求。
解决方法
在 Excel 中将列设为正确格式(数值/日期),或清洗掉非数字字符后再重新生成脚本。
! Violation of PRIMARY KEY(主键冲突)
原因
INSERT 的数据与已有记录主键或唯一索引重复。
解决方法
导入前检查 Excel 中 ID 列是否重复;或改用 UPDATE 类型更新已有记录,而非 INSERT。
! Cannot insert NULL(不能插入 NULL)
原因
Excel 中某些必填列为空,生成的 SQL 包含 NULL,但数据库字段不允许为空。
解决方法
在 Excel 中补全空单元格,或在数据库中为该字段设置默认值后再执行脚本。
! Unclosed quotation mark(引号未闭合)
原因
数据中包含未转义的单引号,或手动修改脚本时破坏了字符串引号配对。
解决方法
工具会自动将单引号转义为两个单引号。若手动编辑过脚本,请重新生成而非手改字符串值。
! Script timeout / 事务日志满
原因
一次性执行数万条 INSERT,导致事务过大或执行超时。
解决方法
将 Excel 拆分为多个小文件分批生成和执行,或在脚本中每 1000 条添加 GO 分批提交。