bcp导入导出报错,字段名含空格

目录

问题描述

用SQL Server的bcp工具通过导入导出在不同server之间同步表数据,有使用format file,若表字段名称中含有空白字符,命令会报错。

典型报错信息如下:
[Microsoft][SQL Server Native Client 11.0]Unable to resolve column level collations
[Microsoft][SQL Server Native Client 11.0]Incorrect host-column number found in BCP format-file

解决方案

常规方案:

  • 不用format file
  • 规范字段命名,rename一下表的列名

但如果由于某些原因,必须要用format file,而且无法改表结构呢?
经尝试,发现直接更新format file中的字段名去掉空格后导入导出正常。

看来bcp导入时主要看列的顺序和字段类型,字段名只是一个备注性的字段,不影响实际导入导出。

其它说明

若用python或其它编程语言将bcp导入导出过程自动化,可在生成foramt file之后自动检查字段名是否含空格,若有则移除之。