내 코드는 다음과 같습니다 :명령 프롬프트 오류 수준의 문제 SQLCMD 실행 한 후
CALL:ECHOCOLOR "Executing on server:[S059D526\TCH] db:CS filename:[9990294_UPDATE_Concessions.sql]." Cyan
SET CURRENT_SCRIPT="9990294_UPDATE_Concessions.sql"
if not exist "9990294_UPDATE_Concessions.sql" (
CALL:ECHOCOLOR "skipping execution of file [9990294_UPDATE_Concessions.sql]. Possibly it was renamed because it has already ran" Yellow
)
if exist "9990294_UPDATE_Concessions.sql" (
CALL:ECHOCOLOR "executing script [9990294_UPDATE_Concessions.sql]" Cyan
sqlcmd -V 1 -r1 -E -S S059D526\TCH -d "CS" -i "9990294_UPDATE_Concessions.sql" -o "9990294_UPDATE_Concessions.sql.run_20120508_12_19_36.log"
)
CALL:ECHORESULT "result [OK=0,ERR=any other]: %errorlevel%" %errorlevel%
if NOT ERRORLEVEL 0 GOTO FINAL_ERROR
if exist "9990294_UPDATE_Concessions.sql" rename "9990294_UPDATE_Concessions.sql" "9990294_UPDATE_Concessions.sql.ok"
나는 데이터베이스 스크립트를 실행 한 후 항상 0을 반환하기 때문이다는 errorlevel
함께 직면 문제 때문에 명령 CALL:ECHORESULT "result [OK=0,ERR=any other]: %errorlevel%" %errorlevel%
. 스크립트가 오류와 함께 실행되면 FINAL_ERROR
으로 이동하지 않습니다. 스크립트 오류가있을 때 프로세스를 중지하기 위해 유효성 검사를 어떻게 수행 할 수 있는지 모르겠습니다.