MSSQL

[MSSQL] BEGIN, END 사용 방법 (Procedure, IF, 등)

허니용 2024. 6. 30. 22:13
728x90
반응형

이전 글에서 Procedure (프로시저)를 생성 및 수정을 하였고요. 

이번 글에서는 프로시저에서 블록에 해당되는 BEGIN END에 대해 알아보도록 하겠습니다.

지난 글에서 만들었던 프로시저를 열어서 실습하셔도 되고요.

새로운 프로시저를 열고 실습하셔도 됩니다.
​​

Procedure(프로시저) BEGIN END
BEGIN -- 변수 선언 및 초기화 
    DECLARE @i INT;  -- 변수 i 선언
    SET @i = 3;      -- i 변수에 3 대입
END

{
    int i;          -- 변수 i 선언
    i = 3;          -- i 변수에 3 대입
}

 

프로시저에서 BEGIN END는 프로그래밍에서 { } 라고 이해하면 쉽습니다.


즉 프로시저에서는 블록을 BEGIN  END 형태로 사용하고요.
프로그래밍 언어에서는  {  } 형태로 사용하는 거죠.

BEGIN END 블록을 두 개를 만들어 보았습니다. 

첫 번째 BEGIN END (41~50번줄)에서는 변수 선언하고 초기화하는 부분을 작성해 보았고요.

두 번째 BEGIN END(52~54번줄)에서는 조회하는 SQL을 작성해 보았습니다.

​​

BEGIN 왼쪽에 보면 - 혹은 + 표시가 있는데요. - 를 눌러주면 BEGIN 문장이 접히게 됩니다. 

프로시저에 내용이 많다면 분석하는데 시간이 오래 걸리고 복잡해 보일 수 있는데요. 

위와 같이 분석된 부분을 접어두면 빠르게 프로시저를 볼 수 있어서 좋습니다.

그리고 BEGIN 오른쪽에 주석을 달아주면 위처럼 접었을 때 BEGIN END 안에 있는 것이 어떤 일을 하는지 대략적으로 알 수 있게 됩니다.

​​

위와 같이 BEGIN END를 사용해 볼 수 있겠습니다.
​​

 

IF 1 = 1
BEGIN 
	UPDATE [TABLE_NAME]
    SET COLUMN1 = 'TEST'
    WHERE 조건
    
    SELECT COLUMN1
END

IF 문으로 분기 처리를 할 때에도 BEGIN END를 사용합니다.

​​

BEGIN -- Step1
	BEGIN -- Step 1-1
    	SELECT 1-1
    END

	BEGIN -- Step 1-2
    	SELECT 1-2
    END
END


BEGIN END를 중첩으로도 사용 가능합니다.


마무리

프로시저에서 BEGIN END에 대해서 알아보았습니다. 
BEGIN END를 잘 사용하면 프로시저를 분석하거나 작성할 때 많은 도움이 된답니다.

이상 마칩니다^^

도움이 되셨다면 좋아요를 꼭 눌어주세요!!^^



728x90
반응형