[MSSQL] 저장프로시저1
저장 프로시저의 기본적인 구조는 다음과 같이
CREATE PROC PROC [ROC_NAME] ★PARAMETER 를 선언 하는 부분이다.AS VARIABLE은 PROCCEDURE내에서 사용 되어질 변수를 정의 하는영역이다.
BEGIN CONTROL , STATEMENTS 구문이 들어 가는 부분이다. CONTROL : IF , IF ELSE IF ELSE IF while STATEMENTS 문
END GO |
CREATE PROC MJOIN
@ID NVARCHAR(10),
@PWD NVARCHAR(10),
@NAME NVARCHAR(5),
@NICK NVARCHAR(50),
@IP NVARCHAR(10),
@RESULT BIT OUTPUT
AS
DECLARE @R BIT //프로시저 내에서 사용 되어질 변수명
DECLARE @N NVARCHAR(50) //위의 타입형식과 크기가 같아야 한다.
BEGIN
SELECT @R = COUNT(*) FROM MEMBERS WHERE ME_ID=LOWER(@ID) //정수형을 갓을 리천받음.
//CONUNT() 횟수, 회를 나타난다. LOWER()입력 받은 무자열이 대문자 이면 강제로 소문자로 하여 저장 시킴
BEGIN TRAN //INSERT 는 트랜젝션이 발생 되어 예외 처리를 하였다.
IF @R != 0 //IF 절의 구문형태는 IF BEGIN ~ END으로 나타낼수 있다.
BEGIN
SET @N = @NICK
END
ELSE
BEGIN
SET @N = @NAME
END
INSERT INTO MEMBERS (ME_ID, ME_PWD, ME_NAME , ME_NICK , ME_STATE, ME_INOUT ,ME_IP )
VALUES(LOWER(@ID) , @PWD , @N ,@NICK ,0, 0 , @IP)
INSERT INTO HISTORY(HI_MEID, HI_DATETIME , HI_INOUT)
VALUES(LOWER(@ID) , DEFAULT,0 )
COMMIT TRAN //
SET @RESULT = 1
END TRY
BEGIN CATCH //예외처리 부분
IF @@ERROR < 0
BEGIN
ROLLBACK TRAN
SET @RESULT = 0
END
END CATCH
END