Утилита SQLCMD из файла BAT - как вернуть ERRORLEVEL в случае синтаксической ошибки

Как я могу получить% ERRORLEVEL% из утилиты SQLCMD, когда некоторые из. sql файлы содержат синтаксическую ошибку? Эти файлы создают хранимые процедуры. Они не вызывают "raiseerror", но могут вызвать синтаксическую ошибку, и мне нужно завершить процесс. Но он всегда возвращает% 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%
)
10
задан Sam 26 June 2014 в 08:01
поделиться