2017-12-10 1 views
0

코스를 사용하지 않을 경우 특정 코스를 제거하는 학교 프로젝트를위한 절차를 만들고 있습니다.TSQL 구문 오류 : '예'가 누락 된 경우

내가 읽은 모든 내용은 올바른 설정이지만 tere는 마지막 "END;"오류입니다. "누락 된 경우"라고 말한 라인

Delimiter // 

CREATE PROCEDURE DeleteCourse 
    (
    pCourseNumber varchar (7) 
    ) 
BEGIN 

    if NOT EXISTS(SELECT * FROM trackcourses WHERE courseNumber = pCourseNumber) 
     then 
     BEGIN 

      DELETE 
      FROM courses 
      WHERE courseNumber = pCourseNumber; 

      DELETE 
      FROM restrictors 
      WHERE courseNumber = pCourseNumber; 

      select row_count(); 
     END;  
    else 
    BEGIN 

    return 'Course could not be deleted'; 

    END; 

END; // <-- Syntax error: missing 'if' 

모든 의견과 아이디어는 매우 높이 평가됩니다.

감사합니다.

이상한.

+0

참고해야합니다 : SQL에는 **'if'이 ** 없다. Quel SQL? – wildplasser

+2

당신의 제목은'TSQL', 당신은'tsql'과'sql-server'라고 태그를 붙였습니다, 그러나 당신은 아래의 코멘트에서'MySQL'을 사용하고 있다고 언급했습니다. 질문 내용을 수정하여 사용중인 내용을 명확히하십시오. – Santi

+1

당신은 sqlserver, tsql로 마이크로 소프트 SQL 서버가 MySql이 아닌 tsql이라는 태그를 붙였습니다 ... 다음 번에 MySQL 태그를 사용하십시오 – under

답변

1

IF과 같은 줄에 THEN이라는 단어를 사용하고 BEGIN END 대신 END IF을 사용해야 할 수도 있습니다. 당신은 그냥 사용하는 경우

IF <statement> THEN 
... 
END IF 

은 MySQL의 구문

에 대한 here를 참조하십시오

... 
IF NOT EXISTS(SELECT * FROM trackcourses WHERE courseNumber = pCourseNumber) THEN 
    DELETE 
    FROM courses 
    WHERE courseNumber = pCourseNumber; 

    DELETE 
    FROM restrictors 
    WHERE courseNumber = pCourseNumber; 

    select row_count(); 
ELSE 
    RETURN 'Course could not be deleted'; 
END IF 
... 

그것은 잘

+0

"다음"을 제거하면 다른 답장이 없다는 것을 알게되면 빠른 응답을 주셔서 감사합니다. . MySQL 워크 벤치를 사용하고 있습니다. 아마도 도움이 될까요? – WeirdGuy

관련 문제