SQLCMD仅返回列的前256个字符

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

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

我能否获得查询的全部输出?

2个回答

7

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参数。


1

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

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

注意: -h-y 是互斥的。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接