프로시저
저장 프로시저란(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
'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 |