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之后自动检查字段名是否含空格,若有则移除之。