2016-09-21 5 views
6

... 내 SQL 거의 존재하지 않는 것입니다, 약간의 도움이 필요 해요, 제발SQL은 대상이 일치하지 병합

예를 들어 NOT MATCHED BY TARGET

NOT MATCHED BY SOURCE의 차이점은 무엇

:

WHEN NOT MATCHED BY SOURCE은 원본에없는 레코드가 대상에 있음을 의미합니까? - 그래서 우리는 을 삭제할 수 있습니까?

WHEN NOT MATCHED BY TARGET - 레코드가 원본에는 있지만 대상에는 없다는 것을 의미합니까? 그래서 우리는 그들을 삽입 할 수 있습니까?

+1

의 행과 일치하지 않는 대상 테이블에서 행을 삭제하려면 완전히 일치하는 것은 당신이 성취하고자하는 것에 달려 있습니다. 예 : 대상에 있지만 원본에없는 레코드가있는 경우 (원본과 일치하지 않음) 대상 테이블에 레코드가 필요하지 않음을 의미합니까? – ZLK

+0

기본적으로 MATCHED 및 [TARGET] .IS_DELETED = 1 그런 다음 삭제되지 않았 음을 표시하거나 대상이 아닌 경우 (원본에 있음) 표시 한 다음 삽입하거나 소스와 [대상]이 일치하지 않는 경우 삽입하십시오. [IS_DELETED] = 0 그들을 삭제 된 것으로 표시합니다 - 이해가 되나요? –

+1

다음은 좋은 예와 설명입니다. https://technet.microsoft.com/en-us/library/bb522522(v=sql.105).aspx – Anton

답변

10

대상으로 일치하지 않는 경우 -이 절을 사용하여 대상 테이블에 새 행을 삽입해야합니다. 표에 삽입 한 행은 소스 테이블에서 대상에 일치하는 행이없는 행입니다.

SOURCE 일치하지 - 당신은 '당신은 그들이 때로 믿을 때 수행 할 작업을 의미하지만 즉 소스 테이블