以下是我的简化方案:
我在SQL Server 2005中有一个表,其中列为varchar(500)
的单列。列中的数据总是350个字符。
当我在SSMS查询编辑器中运行选择时,复制&将结果集粘贴到文本文件中,文件中的行长为350,与实际数据长度匹配。
但是当我将sqlcmd
与-o
参数一起使用时,生成的文件的行长度为500,与varchar(500)
的最大长度相匹配。
所以问题是,如果不使用select
中的任何字符串函数,是否有办法让sqlcmd
知道不要像char(500)
那样对待它?
答案 0 :(得分:13)
您可以使用sqlcmd
格式设置选项-W
从输出文件中删除尾随空格。
在此MSDN article了解详情。
答案 1 :(得分:1)
-W仅适用于默认大小256。如果你想要更多,你必须使用-y修饰符,它将告诉你它与-W互斥。基本上你运气不好,因为在我的情况下文件从0.5M增长到172M。您必须使用其他方法来剥离白色空间后文件生成。一些PowerShell命令或其他东西。