SQL 스크립트 파일을 실행할 때 SQLCMD를 얻으면 오류 또는 경고가 출력됩니다.오류 및 경고 만 출력하도록 SQLCMD를 얻는 방법
본질적으로 정보 기반 메시지를 출력하고 싶지 않습니다.
SQL 스크립트 파일을 실행할 때 SQLCMD를 얻으면 오류 또는 경고가 출력됩니다.오류 및 경고 만 출력하도록 SQLCMD를 얻는 방법
본질적으로 정보 기반 메시지를 출력하고 싶지 않습니다.
SQLCMD
이 매개 변수를 전달하여 오류가 아닌 출력 메시지를 반환하는 것을 방지 할 수 없습니다.
그러나 수행 할 수있는 작업은 오류 메시지를 STDERR
으로 리디렉션 한 다음 다른 모든 메시지를 NUL
으로 지정하는 것입니다.
-r
매개 변수를 전달하면됩니다. books online :
-r [0 | 1] msgstr stderr
오류 메시지 출력을 화면 (stderr)으로 리디렉션합니다. 매개 변수를 지정하지 않거나 0을 지정하면 심각도 레벨이 11 이상인 오류 메시지 만 리디렉션됩니다. 1을 지정하면 PRINT를 포함한 모든 오류 메시지 출력이 방향 재 지정됩니다. -o를 사용하면 효과가 없습니다. 기본적으로 메시지는 표준 출력으로 보내집니다. 당신은 표시 할 수 있지만, 모든 오류 메시지 출력을 표시 할 오류 메시지를 정확히에 따라
세트 -r
, 예를 들어 명령은 다음과 같습니다
sqlcmd -Q "select 1 as a; select 1/0 as b" -E -r1 1> NUL
를 그냥이에 추가로, 당신이있는 경우 파일로 오류를 보내면, 내가 찾은이 https://www.simple-talk.com/sql/sql-tools/the-sqlcmd-workbench/
이 발견되었습니다. OUT 설정을 생략하면 오류 로그 만 생성됩니다. MySQLBatchToRun.sql에서 다음
sqlcmd -x -E -S MyServer -i C:\MySQLBatchToRun.sql
실행할 수있는 실제 SQL을 MySQLScript.sql에서이
USE MyDatabase
:Error C:\MyErrorLog.txt
:r C:\MySQLScript.sql
GO
같은 : 그래서 당신은이 같은 명령이 있습니다. 조금 복잡하지만 작동합니다. 내가 가진 유일한 문제는 오류가없는 경우에도 빈 오류 로그 파일을 만드는 것입니다. 같은 입력 파일이 또한 -i와 함께 작동
sqlcmd -Q "print 'hello logfile';select 'Ted' as bro" -r1 1> C:\output.txt 2> C:\logfile.txt
을 : SQLCMD -i
그것은 당신이 그렇게처럼 출력에서 별도의 로그인하는 데 사용할 수 있습니다 -R1와 stderr로 전송되는 인쇄 문처럼 보인다 helloTed.sql -R1 1> C : \ 경우 output.txt 2> C : \ logfile.txt 여기서
helloTed.sql :
인쇄 '안녕하세요 로그';
형제 같은
선택 '테드'아마 당신은 인쇄가 포함 된 저장된 프로 시저를 간부 인 -Q를 사용하여 삽입 할 수 있습니다.
감사합니다. MSDN은 -m 및 -V 옵션을 언급합니다. [link] http://msdn.microsoft.com/en-us/library/ms162773.aspx -하지만 심각도 수준은 제공된 수와 같거나 더 낮아야합니다. 나에게 이것은 매우 이상하게 보입니다. 예를 들어 누군가가 정보 메시지를 원하지만 오류가 아닌 이유는 무엇입니까? 더 많은 log4net (예를 들어) 스타일 심각도 필터 (ERROR 지정 및 ERROR 및 FATAL 메시지 만 수신)가 필요합니다. – nashwan
참고 : -r0을 사용하여 오류 만 가져옵니다. "경고"없이 그냥해야 할 것입니다. – nashwan