
안녕하세요. 오늘은 라이프사이클 재무에 대한 모든 것_글라이드 유튜브 강의를 듣고 참고하여 MSSQL의 저장 프로시저에 대해 포스팅을 작성하도록 하겠습니다.
저장 프로시저란?
SQL Server에서 제공하는 프로그래밍 기능으로, 반복적이거나 복잡한 데이터베이스 작업을 효율적으로 수행할 수 있게 합니다. 저장 프로시저는 여러 SQL 쿼리를 하나로 묶어 저장할 수 있으며, 이로 인해 복잡한 비즈니스 로직을 캡슐화하고 재사용할 수 있습니다.
- 복잡한 비즈니스 로직을 포함할 수 있음
- 데이터 처리와 트랜잭션 관리가 가능
- 코드 재사용과 유지보수가 용이해짐
- 네트워크 트래픽 감소: 클라이언트와 서버 간의 네트워크 통신을 줄임
저장 프로시저 문법
생성
CREATE PROCEDURE <procedure_name>
@<매개변수1> 데이터타입,
@<매개변수2> 데이터타입,
...
AS
BEGIN
<sql_query> -- 비즈니스 로직 작성
END;
실행
EXEC <procedure_name>;
생성 & 실행 예시
예시1
-- SP_SELECT_COMPANYINFO라는 프로시저 생성
CREATE PROCEDURE SP_SELECT_COMPANYINFO
AS
BEGIN
SELECT *
FROM Companyinfo
END;
GO
-- 실행
EXEC SP_SELECT_COMPANYINFO;

예시2
-- 기업코드와 기간을 입력 받아 해당 기간 동안의 기업의 가격을 출력하는 프로시저 생성
CREATE PROC SP_SELECT_STOCKPRICE @id INT, @startdate DATE, @enddate DATE -- 기업코드, 시작날짜, 마지막날짜
AS
BEGIN
SELECT DATE_, CLOSE_
FROM Stockprice
WHERE ID = @id
AND DATE_ BETWEEN @startdate AND @enddate
ORDER BY DATE_ DESC
END;
GO
-- 실행
EXEC SP_SELECT_STOCKPRICE 40853, '2020-10-01', '2020-10-13';

예시3
-- 테이블의 이름을 매개변수로 받아 해당 테이블의 데이터를 출력해주는 프로시저 생성
CREATE PROC SP_SELECT_TABLE_INFO @tablename VARCHAR(3000)
AS
BEGIN
DECLARE @sqlQuery VARCHAR(3000)
SET @sqlQuery = 'SELECT * FROM ' + @tablename
EXEC(@sqlQuery)
END
GO
-- 실행
EXEC SP_SELECT_TABLE_INFO 'Stockprice';

생성한 프로시저는 SSMS에서
데이터베이스 > 사용 중인 DB > 프로그래밍 기능 > 저장 프로시저에서 확인할 수 있습니다.

수정
ALTER PROCEDURE <procedure_name>
@<매개변수1> 데이터타입,
@<매개변수2> 데이터타입,
...
AS
BEGIN
<sql_query>
END;
삭제
DROP PROCEDURE <procedure_name>;
삭제 예시
DROP PROCEDURE SP_SELECT_COMPANYINFO;
DROP PROCEDURE SP_SELECT_STOCKPRICE;
'Databases > MSSQL' 카테고리의 다른 글
| [MSSQL] 조건문(IF)과 반복문(WHILE) (+continue, break) (0) | 2024.08.20 |
|---|---|
| [MSSQL] 동적 SQL (0) | 2024.08.20 |
| [MSSQL] 필수 함수 총정리 (ft. 집계, 문자열, 날짜, 형식 변환, 출력) (0) | 2024.08.20 |
| [MSSQL] 필수 데이터 타입 총정리 (0) | 2024.08.20 |
| [MSSQL] 사용자 정의 함수 (ft. 스칼라 함수, 테이블 함수) (0) | 2024.08.20 |