Sql server 2005 输出文件中的Sqlcmd尾随空格

Sql server 2005 输出文件中的Sqlcmd尾随空格,sql-server-2005,sqlcmd,Sql Server 2005,Sqlcmd,以下是我的简化场景: 我在SQLServer2005中有一个表,其类型为varchar(500)。列中的数据长度始终为350个字符 在SSMS查询编辑器中对其运行select时,将结果集复制并粘贴到文本文件中,文件中的行长度为350,与实际数据长度匹配 但是当我将sqlcmd与-o参数一起使用时,结果文件的行长为500,这与varchar(500)的最大长度相匹配 所以问题是,如果不在select中使用任何字符串函数,是否有一种方法可以让sqlcmd知道不要将其视为char(500)?您可以使用

以下是我的简化场景:

我在SQLServer2005中有一个表,其类型为
varchar(500)
。列中的数据长度始终为350个字符

在SSMS查询编辑器中对其运行select时,将结果集复制并粘贴到文本文件中,文件中的行长度为350,与实际数据长度匹配

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


所以问题是,如果不在
select
中使用任何字符串函数,是否有一种方法可以让
sqlcmd
知道不要将其视为
char(500)

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


阅读更多信息。

-W对于可变大小的列,默认大小仅为256。如果你想要更多,你需要使用-y修饰符,它会告诉你它与-W是互斥的。基本上你运气不好,就像我的例子一样,文件从0.5M增长到172M。在生成文件后,必须使用其他方法去除空白。一些PowerShell命令之类的东西。

我确信我真正想要的东西有些古怪,因为当时我确实尝试了-W,但没有任何帮助。不是我做错了什么,就是忘记了我到底需要什么,但你的回答确实解决了我在帖子中提出的问题。谢谢。我以为我疯了,直到我找到这个!