데이터 꿈나무
[SQL] 저장 프로시저 (Stored Procedure) 란? 본문
실무에서 프로그램에서 만들어 놓은 SQL문을 저장해 놓고, 필요할 때마다 호출해서 사용하는 방식으로 프로그램을 만드는데요, 이러한 방식이 가능하도록하는 각 DBMS에서 제공하는 프로그래밍 기능입니다.
저장 프로시저 (Stored Procedure) 란?
- DB내부에 저장된 일련의 SQL문을 하나의 함수처럼 실행 하기 위한 쿼리의 집합
- 하나의 동작을 여러 쿼리를 통해 하는 경우
- 트리거와의 가장 큰 차이로 매개변수 사용가능
※ 저장 프로시저의 이점
- 반복적인 작업 최소화
- 개발 언어에 비의존적
- 에러감소 및 유지보수 간편
※ 시스템 저장 프로시저 (System Stored Procedure)
: 시스템에서 기본적으로 제공하는 저장 프로시저
| 프로시저명 | 사용형식 | 설명 |
| sp_help | sp_help [객체명] | DB의 모든 객체의 형식과 그 정보를 출력 |
| sp_databases | sp_databases | 자신의 SQL SERVER의 데이터베이스들을 출력 |
| sp_helptext | sp_helptext [객체명] | 뷰나 저장 프로시저를 정의한 소스를 출력 |
| sp_depends | sp_depends [객체명] | 해당 테이블이나 뷰, 저장 프로시저와 연관 되거나 종속된 객체 출력 |
저장 프로시저 생성
CREATE PROCEDURE <프로시저 이름>( [ ARGUMENT , ... ] )
AS
BEGIN
실행문
실행문
....
END
예시)
CREATE PROCEDURE adviser_info
@ad_name VARCHAR(20)
AS
BEGIN
SELECT i.*, s.*
FROM
instructor AS i INNER JOIN adviser AS a ON i.id = a.i_id
INNER JOIN student AS s ON s.id = a.s_id
WHERE i.name = @ad_name
END
저장 프로시저 실행
adviser_info @ad_name = 'Kim'
저장 프로시저 삭제
DROP PROCEDURE adviser_info
'Language > SQL' 카테고리의 다른 글
| [SQL] 인덱스 (Index) 란? (0) | 2022.10.24 |
|---|---|
| [SQL] 트리거 (Trigger) 란? (0) | 2022.10.24 |
| [SQL] 뷰(View)란? (2) | 2022.10.06 |
| [SQL] SQL의 종류(데이터 제어어 DCL, 데이터 정의어 DDL, 데이터 조작어 DML) (2) | 2022.09.30 |
Comments