프로시저 오류 문의 0 2 698

by 경상도곰남 [SQL Query] [2018.08.13 19:31:52]


아래의 메세지가 나타나는데 문법오류인거 같은데 잘 모르겠네요.. ㅠㅠ
고수님들의 답변 부탁드립니다. 

서버: 메시지 156, 수준 15, 상태 1, 줄 27 키워드 'ELSE' 근처의 구문이 잘못되었습니다.


ALTER PROC [usp_JointTechnologyReviseInsert]
	@jt_idx			int, 
	@intResult  	int output
	
AS	
	BEGIN TRAN

	IF EXISTS(SELECT * FROM tbl_joint_technology_revise WHERE jt_no = @jt_idx)
		Set @intResult = 0
	ELSE
		BEGIN
			IF EXISTS(SELECT * FROM tbl_joint_technology WHERE jt_idx = @jt_idx)				
				INSERT INTO tbl_joint_technology_revise(jt_no, jt_year, jt_project, jt_part, jt_type, jt_sdate, jt_edate, jt_dt_depart, jt_dt_position, jt_dt_name, jt_dt_birthday, jt_dt_email, jt_dt_telnum, jt_dt_faxnum, jt_dt_cellnum, jt_support_money, jt_engineering_fee, jt_partner_company, jt_partner_name, jt_partner_depart, jt_partner_telnum, jt_partner_position, jt_partner_email, jt_partner_family, jt_preferential, jt_indate, jt_inuid)
					 SELECT @jt_idx, jt_year, jt_project, jt_part, jt_type, jt_sdate, jt_edate, jt_dt_depart, jt_dt_position, jt_dt_name, jt_dt_birthday, jt_dt_email, jt_dt_telnum, jt_dt_faxnum, jt_dt_cellnum, jt_support_money, jt_engineering_fee, jt_partner_company, jt_partner_name, jt_partner_depart, jt_partner_telnum, jt_partner_position, jt_partner_email, jt_partner_family, jt_preferential, jt_indate, jt_inuid FROM tbl_joint_technology WHERE jt_idx = @jt_idx
					 
				IF ( @@error > 0 )--//실패
					begin
						ROLLBACK TRAN;
						Set @intResult = 2			
					END  
				ELSE --//성공
					begin
						COMMIT TRAN;
						Set @intResult = 1							
					END;
							 
			ELSE
				Set @intResult = 3					
	 	END; 	

 

by 야신 [2018.08.14 08:32:56]

If ..

Else

..

End if;

입니다


by 마농 [2018.08.17 14:28:26]

IF 문 다음에 여러줄이 오는 경우 begin ~ end 를 해줘야 하는데.
18 라인의 IF 문에 begin ~ end 가 필요해 보입니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입