코북
Keep going
코북
전체 방문자
오늘
어제
  • 분류 전체보기 (114)
    • Computer Science (20)
      • 인터넷 (10)
      • 운영체제 및 일반지식 (4)
      • 공통 요구사항 (4)
      • WAS (2)
    • DataBase (18)
    • JavaScript (22)
    • Spring (15)
    • Java (4)
    • ASP.NET (5)
    • C# (6)
    • 알고리즘 (8)
    • HTML5 + CSS (5)
    • Git & GitHub (5)
    • Machine Learning (5)
    • 좋은 글 공유 (1)

최근 글

최근 댓글

티스토리

hELLO · Designed By 정상우.
코북

Keep going

[MSSQL] 프로시저 (PROCEDURE)
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

저작자표시 비영리 (새창열림)

'DataBase' 카테고리의 다른 글

[MSSQL] 인덱스(INDEX) #1 + 페이지(Page)  (0) 2022.02.28
[MSSQL] 트랜잭션과 @@TRANCOUNT  (0) 2022.02.25
[MSSQL] GO의 의미  (0) 2022.02.24
[MySQL] CHAR, VARCHAR 차이점 + TEXT  (2) 2022.02.24
[MySQL] select 0 from A (select 1 from A)  (0) 2022.02.23
    'DataBase' 카테고리의 다른 글
    • [MSSQL] 인덱스(INDEX) #1 + 페이지(Page)
    • [MSSQL] 트랜잭션과 @@TRANCOUNT
    • [MSSQL] GO의 의미
    • [MySQL] CHAR, VARCHAR 차이점 + TEXT
    코북
    코북

    티스토리툴바