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 의 내용이다.
'데이터베이스 > 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 |