저장 프로시저란?
일련의 쿼리를 마치 하나의 함수처럼 실행하는 쿼리의 집합.
쉽게 말해 자주 사용하는 것들을 함수처럼 만들어 놓는 것이다.
아래 프로시저는 T_Record 테이블에서 데이터를 조회하여 T_History 테이블에 넣는 쿼리문이다
CREATE PROCEDURE SP_HISTORY(
--프로시저 호출 시 받을 파라미터
@RECORD_NO INT,
)
AS
BEGIN
-- 프로시저에서 사용 할 변수
DECLARE @HISTORY_SEQ INT,
@RECORD_TIME DATETIME,
@HISTORY_DATE DATETIME;
-- 데이터를 조회하여 변수에 저장
SELECT @RECORD_TIME = A.EndTime,
@HISTORY_DATE = A.SysModDT
FROM T_Record A
WHERE A.RecordNo = @RECORD_NO;
--변수에 있는 데이터 입력
INSERT INTO T_History ( RecordNo, CommuteType, HistorySeq)
VALUES
(
@RECORD_NO,
'E',
@HISTORY_SEQ
)
END
저장 프로시저를 만든 다음 아래 쿼리를 날리면 만들어 놓은 프로시저가 호출 된다.
ecex SP_HISTORY 11;
이렇게만 보면 아 이걸 써먹을 곳이 있어? 라고 생각 할 수도 있지만
TRIGGER와 함께 사용한다면 엄청난 기능을 만들 수 있다.
TRIGGER로 특정 테이블에 데이터가 입력 되거나 업데이트 되었을 때 저장 프로시저를 동작하게 만든다면
해당 테이블의 변경 이력 등을 저장하도록 쉽게 구현 할 수가 있다.
'이것저것' 카테고리의 다른 글
항해플러스 1기 후기 (1) | 2023.08.22 |
---|---|
클린코드 1~3장 (0) | 2023.06.20 |
컴파일(compile)과 인터프리터(interpreter) (0) | 2021.02.17 |
[Mac M1] brew(브루) 설치 (0) | 2021.02.15 |
Azure- Database Client IP 추가하기 (0) | 2020.05.22 |