본문 바로가기
Cito 일/SQL

[MSSQL] 저장프로시저 안에서 저장프로시저 호출 - Exec를 이용한 방법

by citopes 2016. 7. 29.
반응형

저장프로시저 안에서 다른 저장프로시저를 호출하려면 크게 보자면 2가지 방법이 있습니다.
Exec(EXECUTE)나 sp_executesql를 이용하면 됩니다.
(참고 : MSDN - sp_executesql 사용)

여기서는 Exec(EXECUTE)를 이용하는 방법을 설명하겠습니다.

1.리턴값이 없을때

리턴값이 없으면 그냥 호출하면 됩니다.


1
2
3
--Exec [저장프로시저 이름]
--Exec [저장프로시저 이름] [매개변수1],[매개변수2],....
Exec TestSelect @temp

2.리턴값이 있을때
리턴값은 항상 int형이므로 인티저형의 변수를 하나 선언한후 값을 대입하는 방식으로 받습니다.

1
2
3
--Exec [값을 받을 변수] = [저장프로시저 이름] [매개변수1],[매개변수2],....
Declare @nTemp int
Exec @nTemp = TestSelect @temp




3.셀랙트(Select)값이 있을때

셀랙트로 값을 받아올때는 임시테이블이나 테이블 변수를 사용하면 됩니다.
임시테이블보다는 테이블 변수를 사용한 방법이 좋습니다.
참고 : [MSSQL] 저장프로시저에서 테이블(Table) 변수 사용하기

1
2
3
4
--임시테이블
Declare @tableTemp table
    ( sTemp varchar(32))
Insert @tableTemp exec [저장프로시저 이름] [매개변수1],[매개변수2]


이런식으로 셀랙트 값을 받을수 있습니다.





출처:http://blog.danggun.net/1255

반응형

'Cito 일 > SQL' 카테고리의 다른 글

SQL 윈도우 함수 [Visual Explanation]  (0) 2019.10.23
[MSSQL] 나머지 값 구하기  (0) 2019.10.01
Access 형변환 함수  (0) 2019.06.27
[MSSQL] 가변컬럼 SQL  (0) 2017.02.10
sp_lock2  (0) 2016.09.28
[MSSQL] 날짜관련 함수  (0) 2015.06.11
[SQL] MSSQL, ORACLE 테이블 복사하기  (0) 2015.06.11
MS-SQL INSERT SELECT, UPDATE SELECT  (0) 2015.06.10
[MSSQL] 프로시저에서 루프문 사용하기  (0) 2015.06.02

댓글