[MSSQL]Mssql Stored Procedure 2 - (mssql 프로시저 생성 및 예제)

2013. 9. 23. 21:59 DB자료/MSSQL
안녕하세요.
이번 포스팅은 MSSQL Stored Procedure 응용방법 입니다.
Stored Procedure 변수 응용 및 분기처리 방법등을 정리하였습니다.



1. MSSQL Stored Procedure - 변수 응용
: Stored Procedure 에서 변수 응용 방법 입니다.


-- SP 생성 Query--

CREATE PROCEDURE testsp
(
@num int,
@name varchar(30)
)
AS
DECLARE @tempcnt int
SELECT @tempcnt = COUNT(*) FROM testtable WHERE num = @num
UPDATE temptable count = @tempcnt WHERE name = @name
GO

-- SP 실행 Query--

EXEC testsp 10, 'ABCD'


- 위의 Stored Procedure 를 보면 외부에서 10, 'ABCD' 를 입력 받아 @num, @name 에 각각
할당을 합니다.
다음으로 외부변수 @tempcnt 를 생성하여 값을 할당 하게 되는데 이때 testtable 의 COUNT(*)
값을 할당 하게 됩니다. 여기서 WHERE 조건절에 @num 의 값이 사용 되었습니다.
@tempcnt 에는 COUNT(*) 의 값이 저장이 되고, 이 값을 이용하여 temptable 에 count 값을
업데이트 하는데 WHERE 조건절에 @name 을 사용합니다.
이와같이 Stored Procedure 내부에서는 필요한 값을 SELECT 쿼리등을 이용하여 변수에 할당
할수 있으며 할당 받은 변수는 자유롭게 사용할 수 있습니다.




2. MSSQL Stored Procedure - 내부 분기 처리
: Stored Procedure 내부에서 IF 문을 사용하여 분기 처리하는 방법 입니다.


-- SP 생성 Query--

CREATE PROCEDURE testsp
(
@num int,
@value int,
@value2 int,
@name varchar(30)
)
AS
DECLARE @tempcnt int
SELECT @tempcnt = COUNT(*) FROM testtable WHERE name = @name
IF @tempcnt = 0
BEGIN
UPDATE temptable SET value = @value WHERE num = @num
END
ELSE
BEGIN
UPDATE temptable SET value = @value2 WHERE num = @num
END
GO

-- SP 실행 Query--

EXEC testsp 10, 100, 0, 'ABCD'

- 위의 Stored Procedure 는 IF 문을 이용하여 분기 처리한 것으로 @tempcnt = 0 일 경우에는
temptable 의 value 값에 @value 를 업데이트 하고, @tempcnt 가 0 이 아닐 경우 temptable
의 value 값에 @value2 를 업데이트 합니다.
Stored Procedure 내부 분기처리를 통해 좀더 다양하게 SP를 구성할 수 있습니다.



3. MSSQL Stored Procedure - SP 내부에서 SP 사용하기
: SP내부에서 다른 SP를 실행하여 결과 값을 이용하는 방법 입니다.


-- SP 생성 Query--

CREATE PROCEDURE testsp
@outvalue int OUTPUT
AS
SELECT @outvalue = COUNT(*) FROM testtable
GO

-- SP 생성 Query--

CREATE PROCEDURE tempsp
AS
DECLARE @outvalue int
EXEC testsp @outvalue OUTPUT
SELECT @outvalue
GO

-- SP 실행 Query--

EXEC tempsp



- 먼저 testsp Stored Procedure 를 생성하는데 여기서 @outvalue OUTPUT 변수를 이용하여
COUNT(*) 값을 반환 합니다.
tempsp 에서는 testsp SP 실행 후 반환 값을 받아서 @outvalue 변수에 입력한 후 SELECT 하여 출력
합니다.

 

 

 

 

 

 

* 이상으로 MSSQL Stored Procedure 정리2 를 마치겠습니다 ~

   감사합니다. 

이 댓글을 비밀 댓글로