Как я могу получить% ERRORLEVEL% от утилиты SQLCMD, когда некоторые из .sql файлов содержат синтаксическую ошибку? Эти файлы создают хранимые процедуры. Они не ссылаются на "raiseerror", но могут привести к синтаксической ошибке conatin, и мне нужно прекратить процесс. Но он всегда возвращает% ERRORLEVEL% как 0. Я пробовал использовать -b, -V и -m (и их комбинации), но ничего не работало для меня, как ожидалось.
Здесь фрагмент кода моего BAT файла.
REM process all sql files in "SQL\scripts" folder and subfolders
FOR /R "SQL\scripts" %%G IN (*.sql) DO (
sqlcmd -d %1 -S %2 -U %3 -P %4 -i "%%G" -b -V 1
echo %ERRORLEVEL%
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
)