当某些 .sql 文件包含语法错误时,如何从 SQLCMD 实用程序获取 %ERRORLEVEL%?这些文件创建存储过程。他们不调用“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%
)