2012-09-24 3 views
0

sql 명령을 실행하는 배치 파일을 만들었습니다. OSQL 명령을 사용할 때 오류 이름을 일괄 적으로 가져 오는 방법은 무엇입니까?

는 이제 위의 코드 부분은 항상 0 Sorry, could not complete your request! 반환 코드

SET OSQL="C:\Program Files (x86)\Microsoft SQL Server\90\Tools\Binn\osql.exe" 
IF NOT EXIST %OSQL% ECHO OSQL.EXE not found, please check the OSQL variable! 
IF NOT EXIST %OSQL% GOTO :ERROR 

SET SQLQUERY_UPDATEDB = "SELECT * FROM %DB%"; 

%OSQL% -S %SQLSERVERNAME% -d %DBNAME% -U %DBACCOUNT% -P %DBPASSWORD% -Q %SQLQUERY_UPDATEDB% -n -b -m-1 > D:\sqloutput.txt 

:ERROR 
ECHO Sorry, could not complete your request! 
ECHO %ERRORLEVEL% 
GOTO :END 

:END 
ECHO Finish batch 

의 조각을 보자. 무슨 뜻이야?

무엇이 잘못되었는지 콘솔에서 오류를 표시하도록 설정하는 방법은 무엇입니까?

-m-1을 입력하고 -h-1MSDN과 함께 제거했지만 내 콘솔에는 표시되지 않습니다.

감사합니다.

답변

1

음. 왜냐하면 SQL 명령을 성공적으로 실행하더라도 오류 처리기에 빠지기 때문에?

시도 명령 실행 후 GOTO :END를 추가 :

SET SQLQUERY_UPDATEDB = "SELECT * FROM %DB%"; 

%OSQL% -S %SQLSERVERNAME% -d %DBNAME% -U %DBACCOUNT% -P %DBPASSWORD% -Q %SQLQUERY_UPDATEDB% -n -b -m-1 > D:\sqloutput.txt 
GOTO :END 

:ERROR 
+0

을 그리고 어떻게 오류가 콘솔에서 발생하면 볼 수 있습니까? 그렇게 할 가능성이 있습니까? 꿈입니까? –

+0

파일의 시작 부분에'@ECHO OFF'를 설정했기 때문에 볼 수 없습니다 :) –