Sqlcmd尾随输出文件中的空格

时间:2013-06-11 19:26:02

标签: sql-server-2005 sqlcmd

以下是我的简化方案:

我在SQL Server 2005中有一个表,其中列为varchar(500)的单列。列中的数据总是350个字符。

当我在SSMS查询编辑器中运行选择时,复制&将结果集粘贴到文本文件中,文件中的行长为350,与实际数据长度匹配。

但是当我将sqlcmd-o参数一起使用时,生成的文件的行长度为500,与varchar(500)的最大长度相匹配。

所以问题是,如果不使用select中的任何字符串函数,是否有办法让sqlcmd知道不要像char(500)那样对待它?

2 个答案:

答案 0 :(得分:13)

您可以使用sqlcmd格式设置选项-W从输出文件中删除尾随空格。

在此MSDN article了解详情。

答案 1 :(得分:1)

对于可变大小的列,

-W仅适用于默认大小256。如果你想要更多,你必须使用-y修饰符,它将告诉你它与-W互斥。基本上你运气不好,因为在我的情况下文件从0.5M增长到172M。您必须使用其他方法来剥离白色空间后文件生成。一些PowerShell命令或其他东西。