DataBase

[MSSQL] 프로시저 (PROCEDURE)

코북 2022. 2. 24. 11:43

 

 

프로시저

 

저장 프로시저란(Stored Procedure)란 SQL Server에서 제공되는 프로그래밍 기능입니다. 즉, 쿼리 문의 집합으로써, 어떠한 동작을 일괄 처리하는 용도로 사용됩니다. 쉽게 말하자면, 개발자가 짜 놓은 쿼리문을 마치 하나의 메서드 형식으로 관리하는 것이라 볼 수 있습니다.

 

 

프로시저 생성 구문

CREATE PROCEDURE [프로시저명]
(
 [파라미터]
)
AS
BEGIN
[쿼리문]
END

 

 

프로시저 생성 예제

CREATE PROCEDURE CREATE_BOOK
(
    @NAME		NAVARCHAR(100),		-- 제목
    @PUBLISHER		NVARCHAR(50),		-- 출판사
    @AUTHOR		NVARCHAR(50),		-- 저자
    @RETURN_CODE	VARCHAR(1)	OUTPUT	-- 성공 : S, 오류 : E
)
AS
BEGIN
    SET NOCOUNT ON -- 결과 적용된 행의 개수를 표시하지 않도록하는 옵션(서버 부하 감소)
    BEGIN TRY
    	BEGIN TRAN -- 트랜젝션 시작
        INSERT INTO TBL_BOOK (NAME, PUBLISHER, AUTHOR)
        VALUES ( @NAME, @PUBLISHER, @AUTHOR )
        COMMIT TRAN -- 커밋
        SET @RETURN_CODE = 'S'
	END TRY
    BEGIN CATCH
    	ROLLBACK TRAN -- 롤백
        SET @RETURN_CODE = 'E'
    END CATCH
    SET NOCOUNT OFF
END;

PS) Varchar는 문자 당 1 바이트를 사용하는 반면 nvarchar는 문자 당 2 바이트를 사용합니다. Varchar [(n)]은 가변 길이의 비 유니 코드 문자(ASCII 값)를 저장하고 Nvarchar [(n)]은 가변 길이의 유니 코드 문자를 저장합니다.

 

 

프로시저 호출 구문

exec [프로시저 명] [파라미터]

 

프로시저 호출 예제

exec CREATE_BOOK '어린왕자', ' SEEK출판사', '생텍쥐페리'

 

프로시저 1개 조회

sp_helptext [프로시저명]

ctrl + T = 텍스트 형식
ctrl + D = 표 형식

단축키를 사용해 두 가지 형식으로 프로시저를 확인 할 수 있습니다. 표의 경우 복사하면 indent가 깨지기 때문에 복사하실 경우에는 텍스트형식으로 복사하는 것이 좋습니다.

 

 

프로시저 수정

ALTER PROCEDURE [프로시저명]
(
 [파라미터]
)
AS
BEGIN
[쿼리문]
ENDALTER PROCEDURE [프로시저명]

 

프로시저 삭제

DROP PROCEDURE [프로시저명]

삭제는 항상 조심합니다. 당신이 만약 신입 개발자라면 그냥 아무것도 삭제하지 않는 게 더욱 좋습니다.

 

 

 

본 글은 아래 링크의 내용을 참고하여 학습한 내용을 나름대로 정리한 글임을 밝힙니다.

https://coding-factory.tistory.com/90

https://m.blog.naver.com/dktmrorl/222069811490

https://ko.strephonsays.com/varchar-and-vs-nvarchar-9861