-
SQLSERVER (2008) Merge Statement♣ Tech & Biz Salon/Tech 2012. 10. 24. 17:48
The MERGE Statement in SQL Server 2008
http://www.simple-talk.com/sql/learn-sql-server/the-merge-statement-in-sql-server-2008/상기 링크 참고해서 짜봤는데 잘 되네요.
매핑테이블에 INSERT 하는것이 주 목적인 구문입니다.
MERGE T_SFST_ITEM_MAPP MUSING (
SELECT 'E1200003' AS SFST_DOCU_ID, ITEM_CD, MAX(ITEM_HIST_SEQ) AS ITEM_HIST_SEQ
FROM T_ITEM_HIST
WHERE ITEM_CD IN ('E00000011','E00000012','E00000013')
GROUP BY ITEM_CD
) N
ON M.SFST_DOCU_ID = N.SFST_DOCU_ID AND M.ITEM_CD = N.ITEM_CD
WHEN MATCHED AND M.ITEM_HIST_SEQ != N.ITEM_HIST_SEQ THEN
UPDATE
SET M.ITEM_HIST_SEQ = N.ITEM_HIST_SEQ
,M.INS_USERID = 'HONGGILDONG'
,M.INS_DATE = GETDATE()
WHEN NOT MATCHED BY TARGET THEN
INSERT (SFST_DOCU_ID, ITEM_CD, ITEM_HIST_SEQ, INS_USERID, INS_DATE)
VALUES (N.SFST_DOCU_ID, N.ITEM_CD, N.ITEM_HIST_SEQ, 'HONGGILDONG', GETDATE());
참고로 mybatis 의 update 로 썼고 ( insert 로 해야할지 update 로 해야할지 mybatis 사이트 가봐도 잘 못찾겠음 )
리턴값은
- Insert 의 경우 작업한 rows 가 리턴됩니다.
- Update 는 해당 경우를 테스트 안해봐서 모르겠네요. ( 쿼리로는 해봤고, mybatis 상에선 못해봄 )'♣ Tech & Biz Salon > Tech' 카테고리의 다른 글
jquery getJson 한글 깨짐 처리 (0) 2012.11.01 Mybatis selectKey Using SqlServer AND Fowarding Added Parameter (0) 2012.10.11 (Ajax, Spring 기반) 동적 콤보박스 (0) 2012.10.05