[MSSQL] SQL Server 2008에서 MERGE문 사용
MS SQL |
2010. 12. 23. 15:49
* 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'가 있을 경우 갱신
- 없을 경우엔 새레코드로 등록한다.