一部の .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%
)