[MSSQL] 저장프로시저1 본문

[PL]/DB

[MSSQL] 저장프로시저1

객과 함께. 2011. 5. 27. 23:22

저장 프로시저의 기본적인 구조는 다음과 같이

 

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

'[PL] > DB' 카테고리의 다른 글

[MSSQL]시퀀스 초기화   (0) 2011.09.18
[mssql ] 비밀번호 잊졌을때 변경 방법  (0) 2011.07.09
[MSSQL]쿼리 실습 예문  (0) 2011.05.16
[MSSQL]text , execl 로 데이터 읽어들이기  (0) 2011.05.13
ms sql 내장함수  (0) 2011.05.13