我已经以这种格式为bcp创建了一个.csv文件:
x,y,z(CR LF)
x,y,z(CR LF) etc...
我的命令中的bcp如下工作:
bcp "{table}" in "{csv path}" -S {server} -t -T -q -w -f "{format xml file}"
使用以下格式命令和文件:
bcp "{table}" format nul -t, -T -q -S {server} -f {format file} -x
此方法可以工作并上载,但不能正确上载带重音符号的字符。
我看过SQL Docs,但示例无法解决此问题。
我的.csv使用此数据格式:
bigint, date, date, nvarchar, varchar, varchar, bigint, bigint
我误会了,我应该更正格式文件,upload IN命令,还是两者都更正?
谢谢。
编辑:基于MS docs我现在开始手动创建以下格式的文件-总是导致数据类型错误的无效字段大小。
11.0
8
1 SQLCHAR 0 15 "," 1 fn1 Latin1_General_CI_AS
2 SQLDATE 1 3 "," 2 fn2 ""
3 SQLDATE 1 3 "," 3 fn3 ""
4 SQLNCHAR 2 510 "," 4 fn4 SQL_Latin1_General_CP1_CI_AS
5 SQLCHAR 2 50 "," 5 fn5 Latin1_General_CI_AS
6 SQLCHAR 2 40 "," 6 fn6 Latin1_General_CI_AS
7 SQLBIGINT 1 8 "," 7 fn7 ""
8 SQLBIGINT 1 8 "\r\n" 8 fn8 ""
我还将表nchar字段上的排序规则更改为'SQL_Latin1_General_CP1_CI_AS'
终于解决了!
我将bcp输入.csv更改为ANSI格式,并使用代码页1252创建了.fmt文件。
我还确保我的SQL表字段已整理为SQL_Latin1_General_CP1_CI_AS
所以,一旦.csv是ANSI,我的格式代码就是:
bcp "table" format nul -q -T -S {server} -t, -r \n -f C:\LocalStuff\abc.fmt -c -C 1252 -x
使用abc.fmt上传后,就可以使用!
感谢所有提供帮助的人。