[MSSQL]저장 프로시저

2012. 4. 25. 13:06NOTE/IT

저장 프로시저

뷰와 비슷하게 sql문을 단순화 시켜주고,보안 문제를 해결해주는 역활을 한다.

입력 매개 변수,출력 매개 변수,리턴 값을 이용할 수 있다


--------------------

PROCEDURE 만들기

--------------------

CREATE PROC[EDURE] procedure_name [;number]

        [ 

            { @parameter data_type} [ VARYING ] [ = default  ] [ OUTPUT ] 

        ] [ ,....n ]

        [ WITH

             { RECOMPILE | ENCRYPTION | RECOMPILE , ENCRYPTION } 

         ]

         [ FOR REPLICATION ]

AS sql_statement [ ...n ]

           

/* database.owner.procedure_name 이 아니라 procedure_name의 의미는 현재 db에서만 가능

    프로시저 이름옆에 ';숫자' 를 사용 할 수 있다...잘 사용하지 않는다..

    매개변수는 최고 2100 개 사용가능, OUTPUT을 지정하여 출력 매개변수가 된다.

    VARYING은 커서를 매개변수로 넘길 때만 사용한다.

    WIHT RECOMPILE는 성능과 관련된 중요한 옵션이다.

    AS 다음은 거의 모든 SQL문이 올 수 있다.

*/


-----------------------

PROCEDURE 고치기

-----------------------

ALTER PROC[EDURE] 를 이용 CREATE PROC 와 동일하다.


-----------------------

PROCEDURE 지우기

-----------------------

DROP PROC procedure_name 


-----------------------

PROCEDURE 실행하기

-----------------------

EXEC[UTE] procedure_name




예제)


CREATE PROCEDURE procTitle

AS 

SELECT put_id,title_id,price,pubdate

FROM titles

WHERE price IS NOT NULL

ORDER BY pub_id

COMPUTE AVG(price) BY pub_id

COMPUTE AVG(price)


--실행 시키기

EXEC procTitle