IT/SQLD

[MSSQL] 프로시저 생성, 수정, 조회, 삭제, 호출하는 방법

알콩달콩아빠 2023. 6. 26. 20:45
728x90
반응형

DBMS 에서 제공하는 프로그램 SQL 를 의미합니다.

 

DB 기능이지만 프로그램이기 때문에 간단한 문법인 IF, WHILE 등 프로그래밍 문법을 사용할 수 있고,

프로시저를 호출할 때 매개변수를 받거나 전달해 줄 수 있습니다.

 

DB 객체로 생성할 수 있고

여러 프로그래밍 문법과 SQL 을 하나의 객체내로 묶어서 사용할 수 있습니다.

 

따라서 개발에서 코드의 복잡도를 줄여줄 수 있습니다.

 

 


제일 기본이 되는 문법입니다.

CREATE PROCEDURE 프로시저 명으로 시작하고, AS BEGIN 과 END 사이에 원하는 쿼리를 입력하는 방식입니다.

1
2
3
4
5
6
CREATE PROCEDURE Schema_Name.Procedure_Name
AS
BEGIN
SELECT 1
END
GO
cs

프로시저를 호출할 때 프로시저명과 AS 사이 ( ) 로 매개변수를 지정할 수 있습니다.

매개변수를 리턴받기 위해서는 타입옆에 OUTPUT 을 작성해 주면 됩니다.

 

이 매개변수는 프로시저 내의 쿼리에서 사용할 수 있습니다.

1
2
3
4
5
6
7
8
9
10
11
CREATE PROCEDURE Schema_Name.Procedure_Name
(
  @site NVARCHAR(500)
  ,@name NVARCHAR(100)
,@ret INT OUTPUT
)
AS
BEGIN
SELECT @site
END
GO
cs

 

 


로직이 변경되거나 잘못된 문법으로 인해, 프로시저를 수정해야 하는 경우가 있습니다.

프로시저를 수정하기 위해서는 CREATE 를 ALTER 로 변경해 주면 됩니다.

1
2
3
4
5
6
7
8
9
10
ALTER PROCEDURE Schema_Name.Procedure_Name
(
  @site NVARCHAR(500)
  ,@name NVARCHAR(100)
)
AS
BEGIN
  SELECT 1
END
GO
cs

 

 


sp_helptext 는 객체생성 구문을 텍스트/표 형식으로 결과에 표기합니다.

1
sp_helptext 'dbo.Procedure_Test'
cs

텍스트 형식으로 표기하기 위해서는 'Ctrl + T', 표 형식으로 표기하기 위해서는 'Ctrl + D' 단축키를 눌러주세요.

 

 


프로시저를 삭제하기 위해서는 DROP 구문을 사용합니다.

삭제는 신중하시길 바랍니다.

1
DROP PROCEDURE Schema_Name.Procedure_Name
cs

 

 


exec 구문을 사용하여 프로시저를 호출할 수 있습니다.

1
exec Schema_Name.Procedure_Name
cs

 

변수를 선언 및 값을 할당한 후 SP 호출에서 사용할 수 있습니다.

OUTPUT 변수는 호출 시 값을 리턴받아서 사용할 수 있습니다.

1
2
3
4
5
6
7
8
9
10
DECLARE @site NVARCHAR(500)
DECLARE @name NVARCHAR(100)
DECLARE @ret  INT
 
SET @site = 'tistory.com'
SET @name = 'mozi'
 
exec Schema_Name.Procedure_Name @site, @name, @ret
 
SELECT @ret
cs

 

출처 : [MSSQL] 프로시저 생성, 수정, 조회, 삭제, 호출하는 방법 (tistory.com)

 

728x90
반응형

'IT > SQLD' 카테고리의 다른 글

MSSQL 뷰 생성하기 (CREATE VIEW)  (0) 2023.06.26
NULL을 제외한 값 얻어내기  (0) 2023.06.26
MSSQL 특정 테이블 백업하기  (0) 2023.06.26
MSSQL 테이블 크기 확인하기  (0) 2023.06.22
MSSQL 정렬하기 (ORDER BY)  (0) 2023.06.21