Вам необходимо использовать опцию -V
.
Пример:
> SQLCMD.EXE -S whatever -E -V16 -Q "USE does_not_exist"
Msg 911, Level 16, State 1, ...
Could not locate entry ...
> echo %ERRORLEVEL%
16
Обновление: в качестве альтернативы вы можете использовать опцию -b
.Который имеет другую семантику выполнения (весь пакет останавливается на первой ошибке).YMMV.
Пример:
> SQLCMD.EXE -S whatever -E -b -Q "USE does_not_exist"
Msg 911, Level 16, State 1, ...
Could not locate entry ...
> echo %ERRORLEVEL%
1
Вы также можете комбинировать -b
и -V
.