반응형
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
해당 함수의 경우 조건에 따라 다양하게 사용되며, 코드단에서 데이터를 두 번 이상 호출하지 않아도 되기 때문에 경우에 따라 유용하게 활용할 수 있는 함수이다.
반응형
'데이터베이스 > Mssql' 카테고리의 다른 글
저장 프로시저 활용 (IDENTITY) : 자동 증가값 생성, 조회 및 초기화 (0) | 2021.09.29 |
---|---|
저장 프로시저 활용 (DECLARE, SET) : 변수 적용 (0) | 2021.09.25 |
저장 프로시저 (Stored Procedure) 란? (0) | 2021.09.13 |