본문 바로가기

데이터베이스/MSSQL

SQL 2008 부터 지원하는 MERGE (머지)

MS SQL Server 2008부터 서포트하게된 MERGE문의 사용방법

MERGE TBL1
USING TBL2
ON (TBL1.CLM1 = TBL2.CLM1)
WHEN MATCHED THEN
UPDATE SET TBL1.CLM2 = TBL2.CLM2
WHEN NOT MATCHED THEN
INSERT (TBL1.CLM1, TBL1.CLM2) Values (TBL2.CLM1, TBL2.CLM2);
c
  • TBL1의CLM1에TBL2의CLM1가 있을 경우 CLM2을 갱신
  • TBL1의CLM1에TBL2의CLM1가 없을 경우 TBL1에 새레코드를 등록

**비교대상이 테이블이 아닌경우의 사용예
일반적으로는 이 예의 경우가 자주 쓰기게 될 것같다.
MERGE TBL1
USING (SELECT 'A' CLM1, 'B' CLM2) TBL2
ON (TBL1.CLM1 = TBL2.CLM1)
WHEN MATCHED THEN
UPDATE SET TBL1.CLM2 = TBL2.CLM2
WHEN NOT MATCHED THEN
INSERT (TBL1.CLM1, TBL1.CLM2) Values (TBL2.CLM1, TBL2.CLM2);
  • TBL1의CLM1에'A'가 있을 경우 갱신
  • 없을 경우엔 새레코드로 등록한다.

다음은 MSDN 의 내용이다.


MSDN MERGE

'데이터베이스 > MSSQL' 카테고리의 다른 글

3자리마다 콤마 처리하기  (0) 2012.11.09
EXCEPT  (0) 2012.10.17
[기본] Cursor  (0) 2012.10.17
MSSQL 2005 이상 버전부터 사용 가능한 PAGING  (0) 2012.10.04
MSSQL Foreign Key(참조키) 설정  (0) 2012.09.21