다음을 통해 공유


MERGE 기능 구현

데이터베이스에 특정 행이 이미 있는지 여부에 따라 데이터베이스에서 업데이트 삽입을 수행해야 할 수 있습니다.

MERGE 문을 사용하지 않고, Transact-SQL에서 사용할 수 있는 한 가지 방법은 다음과 같습니다.

UPDATE mytable SET col=@somevalue WHERE myPK = @parm  
IF @@ROWCOUNT = 0  
    INSERT mytable (columns) VALUES (@parm, @other values)  

병합을 구현하는 또 다른 Transact-SQL 메서드:

IF EXISTS (SELECT 1 FROM mytable WHERE myPK = @parm)  
    UPDATE....  
ELSE  
    INSERT  

고유하게 컴파일된 저장 프로시저의 경우

DECLARE @i  int  = 0  -- or whatever your PK data type is  
UPDATE mytable SET @i=myPK, othercolums = other values WHERE myPK = @parm  
IF @i = 0  
   INSERT....  

또한 참조하십시오

네이티브 컴파일된 저장 프로시저의 마이그레이션 문제
메모리 내 OLTP에서 지원되지 않는 Transact-SQL 구문.