【问题标题】:SQLCMD returns only the first 256 characters of columnSQLCMD 仅返回列的前 256 个字符
【发布时间】:2017-07-27 12:40:12
【问题描述】:
FOR /f "delims=" %%a IN ('"%SQLCMD%" -E -S %Server% -d %DestDb% -h-1 -i GetResult.sql') do (
  SET Result=%%a
)
ECHO "%Result%"

%Result% 设置为实际结果的前 256 个字符。

有没有办法获得查询的全部输出?

【问题讨论】:

    标签: windows batch-file cmd sqlcmd


    【解决方案1】:

    默认情况下,SQLCMD 将可变长度列限制为 256。 -y 0 参数修复了这个问题。

    FOR /f "delims=" %%a IN ('"%SQLCMD%" -E -S %Server% -d %DestDb% -y 0 -i GetResult.sql') do (
      SET Result=%%a
    )
    ECHO "%Result%"
    

    -h和-y参数互斥,所以-h-1必须去掉。

    【讨论】:

      【解决方案2】:

      是的,您可以使用-y 0 --> 0- unlimited 获得完整输出,但请注意这可能会导致性能问题。

      sqlcmd -e -s server_name -Q "your query" -y 0> op_file_path
      

      注意:-h-y 是互斥的

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-04-07
        • 1970-01-01
        • 1970-01-01
        • 2011-01-10
        • 1970-01-01
        • 2016-01-08
        • 2016-02-19
        相关资源
        最近更新 更多