10

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

2 に答える 2

11
于 2011-04-26T14:54:46.327 に答える
0

ありがとう、これがワークバッチスクリプトです。

@ECHO OFF
setlocal enabledelayedexpansion
FOR /R "C:\SQL" %%G IN (*.sql) DO (
sqlcmd -S%1 -d tangoDB -E -h-1 -w255 -i "%%G" -b
echo   %%G  -  !ERRORLEVEL!
IF !ERRORLEVEL! NEQ 0 EXIT /B !ERRORLEVEL!
)
于 2012-04-17T09:24:04.770 に答える