반응형

IF EXISTS 란

프로시저를 활용하다 보면, 데이터를 확인하여 특정 조건에 따라 다른 조건의 쿼리를 실행해야 하는 경우가 생긴다.

이럴 때 주로 활용하는 조건문이 IF EXISTS이다.

 

문법

기본적인 문법은 다음과 같으며, 조건문에 값의 유무에 따라 실행되는 쿼리를 다르게 실행할 수 있다.

 

IF EXISTS (
	-- 조건문
	SELECT 1 FROM TEST WHERE TEST_NAME = '개발새발'
    )
	BEGIN
    	-- 조건문에 값이 있는 경우 실행
    	UPDATE TEST SET TEST_TIME = GETDATE()
    END
ELSE
	BEGIN
    	-- 조건문에 값이 없는 경우 실행
    	INSERT INTO TEST (TEST_NAME, TEST_TIME) VALUES ('개발새발', GETDATE())
    END

 

IF EXISTS 문법과 다르게, 조건 결과가 없을 때의 경우도 사용할 수 있으며, 문법은 다음과 같다.

 

IF NOT EXISTS (
	-- 조건문
	SELECT 1 FROM TEST WHERE TEST_NAME = '개발새발'
    )
	BEGIN
    	-- 조건문에 값이 없는 경우 실행
    	INSERT INTO TEST (TEST_NAME, TEST_TIME) VALUES ('개발새발', GETDATE())
    END
ELSE
	BEGIN
    	-- 조건문에 값이 있는 경우 실행
        UPDATE TEST SET TEST_TIME = GETDATE()
    END

 

 

 

해당 함수의 경우 조건에 따라 다양하게 사용되며, 코드단에서 데이터를 두 번 이상 호출하지 않아도 되기 때문에 경우에 따라 유용하게 활용할 수 있는 함수이다.

반응형

+ Recent posts