Search code examples
sqlsql-serversql-server-2008-r2sqlcmd

How to get SQLCMD to output errors and warnings only


How can you get SQLCMD, when executing a SQL script file, to just output any errors or warnings it encounters?

I essentially dont want information based messages to be output.


Solution

  • It's not possible to prevent SQLCMD returning non-error output messages by passing it a parameter.

    However, what you can do is redirect error messages to STDERR, then direct all other messages to NUL.

    This is done by passing the -r parameter. From books online:

    -r[ 0 | 1] msgs to stderr

    Redirects the error message output to the screen (stderr). If you do not specify a parameter or if you specify 0, only error messages that have a severity level of 11 or higher are redirected. If you specify 1, all error message output including PRINT is redirected. Has no effect if you use -o. By default, messages are sent to stdout.

    Set -r depending on exactly which error messages you want to display, but to display all error message output, an example command would be:

    sqlcmd -Q "select 1 as a; select 1/0 as b" -E -r1 1> NUL