MSSQL INSERT EXEC 저장 프로시저 실행 결과 테이블에 저장하기

MSSQL INSERT EXEC 저장 프로시저 실행 결과 테이블에 저장하기

MS SQL에서 INSERT EXEC 문은 저장 프로시저를 실행한 결과 집합을 기존 테이블에 저장을 할 때 사용하는 구문입니다. INSERT SELECT 문과 비슷한 기능입니다. 그리고 자주 사용하지는 않습니다.  

그럼 간단한 예제를 통해서 INSERT EXEC 문 사용법에 대해서 알아보죠.

포스트 기준

– Microsoft SQL Server 2019

– SSMS 18.11

사용 예제

1. 사용법(구문)

INSERT 테이블
EXEC 프로시저명 [ 변수 [, …n] ]


2. 저장 프로시저 생성

▶ 샘플 저장 프로시저 : USP_BS_DEMO_2 

/* 학번을 받아 학생정보 조회 */
CREATE PROC USP_BS_DEMO_2 (@IN_P_ID NVARCHAR(5))
AS
BEGIN
     
   /* 테이블 변수 선언 */
   DECLARE @TEMP TABLE (
      P_ID        NVARCHAR(50),
      NAME        NVARCHAR(50),
      DEPART      NVARCHAR(50),
      GRADE       SMALLINT,
      S_ID        NVARCHAR(50),
      SUBJECT     NVARCHAR(50),
      SCORE       SMALLINT
   )
     
   -- 테이블 변수에 저장 작업
   INSERT INTO @TEMP
   SELECT A.P_ID,      -- 학번
          B.NAME,      -- 성명
          B.DEPART,    -- 학과
          B.GRADE,     -- 학년
          A.S_ID,      -- 과목코드
          C.SUBJECT,   -- 과목
          A.SCORE      -- 점수
     FROM BS_DEMO_8_3 A
          INNER JOIN BS_DEMO_8_1 B ON A.P_ID = B.P_ID
          INNER JOIN BS_DEMO_8_2 C ON A.S_ID = C.S_ID
    WHERE A.P_ID = @IN_P_ID   -- 학번 받은 변수
     
-- 해당되는 데이터 조회
SELECT * FROM @TEMP
     
END


▶ 저장 프로시저를 실행한 화면 

저장 프로시저를 실행한 화면


3. INSERT EXEC 문 사용 예시

-- 프로시저 실행 결과 데이터를 테이블에 저장한다.
INSERT INTO BS_DEMO_8_4
EXEC USP_BS_DEMO_2 '1001'
     
-- 데이터 확인
SELECT * FROM BS_DEMO_8_4
INSERT EXEC 문 사용 예시

함께 보면 좋은 게시글

위로 스크롤