sqlserver2000和2008,BCP和BULK INSERT的问题
BCP TEST_TABLE format nul -f TEST_TABLE.FMT -c -t"^A" -T (这里^A在UE编辑器中显示为一个小方框,这里显示不出来,故用^A代替)
BCP "SELECT * FROM TEST_TABLE" queryout TEST_TABLE.txt -f"TEST_TABLE.FMT" -E -T
该语句在SQLSERVER 2000和2008都导出正常,数据也是正常的
随后清空TEST_TABLE,将文件导入
BULK INSERT TEST_TABLE FROM 'TEST_TABLE.txt' WITH ( FORMATFILE = 'TEST_TABLE.FMT',CHECK_CONSTRAINTS,KEEPNULLS,KEEPIDENTITY )
问题出在这里在SQLSERVER 2000导入正常 2008 导入失败(用bcp in也一样)
随即在sqlserver2008中导出语句format文件中的-t"^A"用-t"ā"代替 直接报错,貌似2008不支持某些字符集的字符,请问如果我要用一个特殊的字符作为字段分隔符,最好用什么?(因为表中有备注字段,",","|"都有可能出现,不能用该字符作为字段分隔符,不然会影响文件的导入,故想用一个键盘上无法输入或者非常冷门的字符)
------解决方案--------------------
你在前面加个大写的N试试.
-tN"^A"