다음은 내 쿼리라고 가정합니다.SQLCMD - SQL Server 작업
DECLARE @INT INT
SET @INT = (SELECT COUNT(1) FROM MyTable)
IF (@INT = 0)
RAISERROR('Fail',16,1)
이 쿼리를 사용하고 "Operating System (CmdExec)"유형을 사용하여 SQL Server 작업을 만들고 싶습니다. @INT <> 0이면 SQL 작업 단계가 성공하고 @INT = 0이면 실패합니다.
어떻게 cmd를 작성할 수 있습니까?
내 시도 (작동하지 않음) ... 서버가 내가 작업을 설정하는 위치와 다릅니다.
sqlcmd -S 123.45.67.890 -E -V15 -d MyDB -Q "DECLARE @INT INT
SET @INT = (SELECT COUNT(1) FROM MyTable)
IF (@INT = 0)
RAISERROR('Fail',16,1)" -b
작업 실패 메시지.
사용자 : LocalSVR \ USER로 실행됩니다. 메시지 105, 수준 15, 상태 1, 서버 RemoteSVR, 줄 1 'DECLARE @ INT INT'문자열 뒤에 닫히지 않은 따옴표. 프로세스 종료 코드 15. 단계가 실패했습니다.
MyTable에 1 개 이상의 레코드가있는 것과 같은 이유로 단계가 실패합니다.
업데이트 : Scott의 제안에 따라 서식을 변경 (줄 바꿈 제거)하여 작동하는 것 같습니다. @ 스콧, 답변으로 의견을 표시하는 방법을 모르겠습니다. 응답을 작성할 수 있다면 대답으로 표시 할 것입니다. 건배!!!
그것이 포맷 정확히 어떻게인가를주고 실패 할 것을 의미합니다 사용하여 해당 라운드 얻을 수 있습니다 작업? Sqlcmd는 쿼리가 여러 줄에 걸쳐있는 것을 좋아하지 않을 것입니다. 줄 바꿈을 제거하면 작동 할 수 있습니다. –
음 ... 와우 !! 이것이 그랬다고 생각해. ..lol 고마워.이 팁은 @ScottTeibert. 건배! – 007