2012. 7. 27. 13:45

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


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



1. 리턴값이 없을 때

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


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



2. 리턴값이 있을 때

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


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



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

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


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


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






마무리
2가지라고 말했지만....결국........ 같은 방법이겠지만 말이죠 ㅎㅎㅎ

  1. 이르 2012.09.02 21:27  Address  Edit/Delete  Reply

    감사합니다! 정말 큰 도움이 되었습니다. ^^

  2. Favicon of http://overit.tistory.com BlogIcon duzin 2013.11.12 15:02  Address  Edit/Delete  Reply

    자료 참조좀 하겠습니다!! 수고하세요~

댓글 작성

이름
패스워드
홈페이지
비밀글