如何防止SQLCMD截断长错误消息?
解决SQLCMD截断长错误消息的问题
如果-y 0参数无法解决错误消息被截断的问题,可以尝试以下几种方法:
使用
-a参数增大数据包大小:SQLCMD默认数据包大小为4096字节,当错误消息超过这个长度就会被截断。可以设置最大允许的数据包大小65535,命令示例:sqlcmd -S 你的服务器名 -d 数据库名 -a 65535 -Q "你的SQL语句"将错误输出重定向到文件:直接在命令行输出时可能受控制台缓冲区限制,把所有输出(包括错误)写入文件可以完整保留内容,命令示例:
sqlcmd -S 你的服务器名 -d 数据库名 -Q "你的SQL语句" -r 1 > full_error.txt 2>&1其中
-r 1会把错误消息重定向到标准错误流,2>&1则将标准错误流合并到标准输出流,最终全部写入文件。结合使用
-y 0和-Y 0:-y 0用于设置常规结果集的列宽为无限制,-Y 0用于设置XML结果的显示宽度,部分场景下同时启用两者可以覆盖更多截断场景,命令示例:sqlcmd -S 你的服务器名 -d 数据库名 -y 0 -Y 0 -Q "你的SQL语句"
内容的提问来源于stack exchange,提问作者J. Mini
相关产品推荐
相关产品推荐

