9

这是我的简化方案:

我在 SQL Server 2005 中有一个单列类型的表varchar(500)。列中的数据长度始终为 350 个字符。

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

但是当我使用sqlcmd参数-o时,生成的文件的行长为 500,与varchar(500).

所以问题是,在不使用任何字符串函数的情况下select,有没有办法让sqlcmd知道不要像对待它一样对待它char(500)

4

2 回答 2

18

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

阅读此MSDN 文章了解更多信息。

于 2013-09-03T11:42:43.187 回答
2

-W 仅适用于可变大小列的默认大小 256。如果你想要更多,你必须使用 -y 修饰符,它会告诉你它与 -W 互斥。基本上你不走运,在我的案例中,文件从 0.5M 增长到 172M。您必须使用其他方法来去除空白后文件生成。一些 PowerShell 命令或其他东西。

于 2016-02-05T16:46:37.700 回答