当某些.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%
)
Run Code Online (Sandbox Code Playgroud)