如何将第一行从查询的第一行保存到文件而不添加其他字符? 当我保存这样的数据时:
EXEC xp_cmdshell 'BCP "SELECT ''xxx'' " queryout D:\file.txt -w -T -S OMD-MG\SQL2008R2'
我有: additional \r\n at the end of file
当我保存这样的数据时:
EXEC xp_cmdshell 'BCP "SELECT ''xxx'' " queryout D:\file.txt -N -T -S OMD-MG\SQL2008R2'
我有: additional characters at front of file我认为这是长度
我尝试了很多没有满意结果的参数
是否还有其他选项可以在没有设计师或管理工作室且没有正确数据的情况下将数据保存到文件中?
答案 0 :(得分:1)
-N
是一种原生二进制格式,其中任何可以为空或可变长度的字段都以其长度开头。如果将-N
与不可为空的固定宽度字段一起使用,则不会以其长度为准。
如果您想要没有换行符的文本数据,可以尝试-r ''
指定默认为\n
的行终止符,例如:
bcp "select 'xxx'" queryout test.txt -c -t '' -r ''
..至少在SQL Server 2016 CTP中我看到BCP尝试向varchar列添加填充。如果您转换为文本,它似乎正常工作:
bcp "select convert(text, col) from table" queryout file -c -t '' -r ''