데이터베이스 개발자 질문과 답변 게시판
데이터베이스 개발/운영 관련 질문과 답변을 올리는 게시판입니다. 궁금하신 내용을 이곳에서 문의하시면 SQLER 분들의 답변을 받으실 수 있습니다. 문의를 하실때에는 최근 작업하신 특이 사항이나, 장애 발생 전 상황을 상세히 올려 주시면 답글을 적어주시는 SQLER분들의 답변이 더 정확할 수 있으니 도움 되시길 바랍니다. 쿼리 문의일 경우, 실제 문제가 재현되는 테이블생성, 샘플데이터 생성 쿼리를 함께 올려 주시면 더 빠르고 정확한 쿼리 문의 응답이 가능합니다.
merge 구문 사용시 아래와 같이 사용하였는데.. 아무런 액션이 없어서 문의 드립니다.
CREATE TABLE #CSScolorOrders
(
colID INT PRIMARY KEY,
ordID INT NOT NULL,
corQuantity INT NOT NULL
);
MERGE #CSScolorOrders AS TARGET
USING (SELECT * FROM #CSScolorOrders WHERE ordID = 3) AS SOURCE(colID,ordID,corQuantity)
ON (SOURCE.colID = TARGET.colID) WHEN
MATCHED THEN UPDATE SET corQuantity = 1
WHEN
NOT MATCHED BY SOURCE
THEN INSERT (colID, ordID, corQuantity) VALUES (1, 3, 1)
OUTPUT $action, inserted.*, deleted.*;
SELECT *
FROM #CSScolorOrders
DROP TABLE #CSScolorOrder
질문의 요지는 Source 테이블과 Target테이블이 동일한 경우 merge구문 사용이 불가한가요?
잘되는데요..
SOURCE 에 해당하는 자료가 있는지 확인해 보세요.
아무 문제 없이 잘 됩니다.