본문 바로가기
인턴

[25일차] MSSQL 프로시저 생성하기 (SSMS)

by 당도-50% 2024. 11. 15.

* MSSQL 프로시저란?

MSSQL에서 **프로시저(Stored Procedure)**는 여러 SQL 문을 그룹화하여 하나의 논리적인 작업으로 묶은 반복 가능한 SQL 코드 블록 입니다. 주로 복잡한 SQL 작업을 재사용 가능하게 만들어, 코드의 효율성을 높이고 일관성을 유지할 수 있습니다. 프로시저는 매개변수를 받거나 결과를 반환할 수 있으며, 데이터베이스 작업(삽입, 수정, 삭제, 조회 등)을 자동화하거나, 복잡한 비즈니스 로직을 처리하는 데 유용합니다.

 

 

* 프로시저 생성 방법

프로시저는 CREATE PROCEDURE 구문을 사용하여 생성합니다. 다음은 기본적인 프로시저 생성 및 사용 예시입니다.

1. 기본 프로시저 생성

프로시저는 SQL 쿼리를 여러 개 포함할 수 있으며, CREATE PROCEDURE 구문을 통해 생성합니다.

CREATE PROCEDURE 프로시저명
AS
BEGIN
    -- SQL 문 작성
    SELECT * FROM 테이블명;
END
예시)
CREATE PROCEDURE GetAllEmployees
AS
BEGIN
    SELECT * FROM Employees;
END

이 프로시저는 Employees 테이블의 모든 데이터를 조회하는 역할을 합니다.

 

2. 매개변수가 있는 프로시저 생성

 

프로시저는 **입력값(파라미터)**을 받을 수 있습니다. 매개변수를 사용하여 동적인 쿼리를 실행할 수 있습니다.

CREATE PROCEDURE GetEmployeeByID
    @EmployeeID INT
AS
BEGIN
    SELECT * FROM Employees WHERE EmployeeID = @EmployeeID;
END

이 프로시저는 EmployeeID라는 입력 매개변수를 받아 해당 ID에 해당하는 직원을 조회하는 역할을 합니다.

 

3. 출력값을 반환하는 프로시저

 

프로시저는 **출력 매개변수(OUT Parameter)**를 사용하여 결과를 반환할 수 있습니다.

CREATE PROCEDURE GetEmployeeCount
    @DepartmentID INT,
    @EmployeeCount INT OUTPUT
AS
BEGIN
    SELECT @EmployeeCount = COUNT(*) FROM Employees WHERE DepartmentID = @DepartmentID;
END

이 프로시저는 특정 부서에 속한 직원의 수를 계산하여 @EmployeeCount라는 출력 파라미터로 반환합니다.

 

 

 


 

 

 

* 프로시저 실행 방법

  • 프로시저 실행: 프로시저를 실행하려면 EXEC 또는 EXECUTE 키워드를 사용합니다.
-- 매개변수가 없는 프로시저 실행
EXEC GetAllEmployees;

-- 매개변수가 있는 프로시저 실행
EXEC GetEmployeeByID @EmployeeID = 3;

 

  • 출력값이 있는 프로시저 실행: 출력 파라미터가 있을 때는 OUTPUT 키워드를 사용하여 값을 받을 수 있습니다.
 
DECLARE @EmpCount INT;
EXEC GetEmployeeCount @DepartmentID = 5, @EmployeeCount = @EmpCount OUTPUT;
PRINT @EmpCount;  -- 출력된 직원 수 출력

 

 

 

 

 

 

 

 

참고 :  https://m.blog.naver.com/seek316/222069811490 - [MS-SQL] CREATE POCEDURE