【发布时间】:2015-11-25 19:45:05
【问题描述】:
我正在使用 bcp 工具通过以下命令将数据从 SQL 复制到文本文件:
bcp.exe "exec <StoredProcedure>" queryout "temp.txt" -T -r\n -c
此命令在测试环境中按预期运行,并创建/更新所需文件而无需额外提示。
但是当它在客户端环境中运行时,bcp 还会提示输入字段长度、前缀和字段终止符——因此当从 SQL 代理作业运行命令时,它会陷入无限等待。
任何想法为什么会发生这种情况?
基于bcp documentation,当使用-c参数时,不提示输入类型等,应使用char作为存储类型,不带前缀,\t作为字段终止符。
【问题讨论】:
-
我猜在您的测试环境和客户端环境实际执行命令之间的某个地方,“/n”不知何故变成了一个真正的换行符。尝试将“-c”放在“-r”之前,看看会发生什么。
-
-r\n是多余的-c与-t\t -r\r\n的含义相同,因此请使用其中一个或另一个 -
@RBarryYoung,你的猜测结果证明是正确的,它解决了这个问题。谢谢。如果您将评论移至答案会很好,所以我可以接受。
-
@Jasper Schellingerhout,真的是多余的,谢谢提示。
标签: sql-server sql-server-2008-r2 bcp