[MSSQL] 프로시저 생성,조회,수정,삭제

프로시저란? 

데이터베이스에서의 프로시저란 프로그래머가 생성해놓은 쿼리문을 마치 하나의 메서드 형식으로 관리하는 것입니다. 실무에서는 굉장히 복잡한 쿼리문을 많이 사용해요. 많은 컬럼을 조회하고 여러 테이블을 조인하고 거기다가 WHERE조건까지... 심한 것은 하나의 쿼리를 만드는데 1000라인이 넘어가는 경우도 종종 있어요. 이렇게 장문의 쿼리를 사용할 때마다 써줘야 한다면 굉장히 불편할 거예요. 그러므로 이 장문의 쿼리를 프로시저에 저장해주고, 쿼리문이 저장된 프로시저를 호출하여 프로그래밍을 하는 것이 훨씬 효율적입니다.

 

프로시저 사용법

프로시저 생성 문법
CREATE PROC [프로시저명]
AS
[쿼리문]

 

프로시저 생성 예제

CREATE PROCEDURE UP_EXPRO
(
    @P_COMPANY NVARCHAR(500),--회사코드
    @P_BIZAREA NVARCHAR(500),--고객사코드
    @P_PLANT NVARCHAR(500) --공장코드
)
AS
BEGIN
SET NOCOUNT ON 
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
	
    SELECT
    A.CD_SHOP,
    A.BIZAREA,
    B.NM_BIZAREA,
    FROM SA_Z_DZ_POS_SHOP_WJT A
    LEFT OUTER JOIN BIZAREA B ON A.COMPANY = B.COMPANY AND A.BIZAREA = B.BIZAREA
    WHERE A.CD_COMPANY = @P_CD_COMPANY AND(
    ISNULL(@P_CD_BIZAREA,'')='' OR @P_CD_BIZAREA = A.CD_BIZAREA)

SET NOCOUNT OFF
RETURN
END;

 

프로시저 1개 조회

sp_helptext [프로시저명]

 

전체 프로시저 조회

select * from INFORMATION_SCHEMA.ROUTINES

 

프로시저 삭제

DROP PROCEDURE [프로시저명] 

 

[MS_SQL] SET NOCOUNT 정의와 사용법 (프로시저 성능 향상)

[MS_SQL] 반복문(WHILE) 사용법 & 예제

[MS_SQL] 피벗테이블을 활용하여 세로로 된 데이터 가로로 출력하기

[MS_SQL] 커서 사용법 & 예제

[MS_SQL] NULL값 체크 (ISNULL) 함수 사용법 & 예제

 

댓글(5)

  • 아크바르
    2019.12.12 11:32

    좋은글 감사합니다.
    퍼가요~

  • 익명
    2021.06.07 21:03

    비밀댓글입니다

    • 2021.06.08 13:54 신고

      MSSQL alias 라고 검색하시면 나와요.

      단순히 SA_Z_DZ_POS_SHOT_WJT 테이블을 A라고 하겠다,

      BIZAREA 테이블을 B로 하겠다라는 의미입니다.

  • MSSQL 초보
    2021.06.17 15:08

    혹시 제가 보기에는 프로시저안에 별칭 주는 언어가 다 포함되어 있는거 같은데
    저렇게 써도 되는건가요? 별칭 후에 다음에 프로시저를 해야 되는게 아닌가 싶어서요..

    그리고 @는 어떤 기능인가요?
    요새 계속 쥔장님 사이트 보면서
    공부 중 입니다..

    • 2021.06.18 08:51 신고

      별칭후에 프로시저를 사용해야한다는게 잘 모르겠습니다. 별칭은 쿼리문 동작 한번만 작동하는 일회성 기능입니다.

      @의 기능은 변수를 선언하고 사용하겠다는 의미입니다. 위의 예제에서는 외부 파라미터를 받아서 사용한다는 의미로 사용되었습니다. MSSQL DECLARE 라는 키워드로 한번 검색해보시면 더 자세한 내용 아실 수 있을거에요

Designed by JB FACTORY