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 分批提交。