如何让SQLCMD仅输出错误和警告

byt*_*dev 9 sql sql-server sqlcmd sql-server-2008-r2

如何在执行SQL脚本文件时获取SQLCMD,只输出遇到的任何错误或警告?

我基本上不希望输出基于信息的消息.

Ed *_*per 21

SQLCMD通过传递参数来阻止返回非错误输出消息是不可能的.

但是,您可以执行的操作是将错误消息重定向到STDERR,然后将所有其他消息定向到NUL.

这是通过传递-r参数完成的.从在线书籍:

-r [0 | 1] msgs到stderr

将错误消息输出重定向到屏幕(stderr).如果未指定参数或指定0,则仅重定向严重性级别为11或更高的错误消息.如果指定1,则重定向包括PRINT在内的所有错误消息输出.如果使用-o则无效.默认情况下,消息将发送到stdout.

-r根据您要显示的确切错误消息进行设置,但要显示所有错误消息输出,示例命令将为:

sqlcmd -Q "select 1 as a; select 1/0 as b" -E -r1 1> NUL
Run Code Online (Sandbox Code Playgroud)

  • 谢谢.MSDN提到-m和-V选项:[link] http://msdn.microsoft.com/en-us/library/ms162773.aspx - 但它说严重性级别需要等于或小于提供的数字.对我来说,这似乎很奇怪,例如为什么有人想要信息消息而不是错误.我希望有更多的log4net(例如)样式严重性过滤器(指定ERROR并仅获取ERROR和FATAL消息) (2认同)