ListID와 PersonID라는 두 개의 열만있는 테이블이 있습니다. 어떤 사람이 시스템에서 다른 사람과 합병되었을 때 나는 "대상자"의 모든 참조를 "대상자"에 대한 참조로 업데이트해야했습니다.중복 된 항목을 만들지 않고 SQL 테이블에 연락처 병합
적으로는, 내가 대상 사람이 이미 중복 된 항목이 될 것이다 소스 사람과 같은 ListID이 테이블에 존재하는 경우,
그러나UPDATE MailingListSubscription
SET PersonID = @DestPerson
WHERE PersonID = @SourcePerson
처럼 간단한 무언가를 호출하고 싶습니다. 중복 된 항목을 만들지 않고이 작업을 수행하려면 어떻게해야합니까? (ListID, PersonID는 기본 키입니다.)
EDIT : 여러 ListID가 사용됩니다. SourcePerson이 ListID 1, 2 및 3에 할당되고 DestinationPerson이 ListID 3 및 4에 할당 된 경우 최종 결과에는 ListID 1, 2, 3 및 4에 지정된 DestinationPerson의 4 개의 행이 있어야합니다.
보다 나은 성능이 존재합니다. 대신 –
쿼리 분석기에 모두 씁니다. 실행 계획을 보았습니다. 동일한 계획을 보여주었습니다. "있음"대 "있음"은 중요하지 않습니다. PersonId에 대한 색인이 크게 중요합니다. –