데이터 꿈나무

[SQL] 저장 프로시저 (Stored Procedure) 란? 본문

Language/SQL

[SQL] 저장 프로시저 (Stored Procedure) 란?

ye_ju 2022. 10. 24. 11:29

실무에서 프로그램에서 만들어 놓은 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

 

Comments