【问题标题】:Sqlcmd trailing spaces in output file输出文件中的 Sqlcmd 尾随空格
【发布时间】:2013-06-11 19:26:02
【问题描述】:

这是我的简化方案:

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

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

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

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

【问题讨论】:

    标签: sql-server-2005 sqlcmd


    【解决方案1】:

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

    MSDN article了解更多信息。

    【讨论】:

    • 我确信我真正想要的东西有些古怪,因为当时我确实尝试了 -W 并没有帮助。要么我做错了什么,要么忘记了我到底需要什么,但你的回答确实解决了我在帖子中提出的问题。谢谢。
    • 我觉得我快疯了,直到我发现这个!
    • Thera 是一种使用-W 缩进的方法?列之间只留一个空格。
    • 而且看起来甚至不是[-s colseparator]接受标签\t
    【解决方案2】:

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

    【讨论】:

    • Thera 是一种使用-W 缩进的方法?柱子之间只留下一个空间。看起来甚至不是[-s colseparator] 接受表\t
    猜你喜欢
    • 2018-07-04
    • 2023-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-25
    • 1970-01-01
    相关资源
    最近更新 更多