ListID と PersonID の 2 つの列のみを保持するテーブルがあります。システム内で人物が別の人物とマージされると、「ソース」人物からのすべての参照を「宛先」人物への参照になるように更新する必要がありました。
理想的には、次のような単純なものを呼び出したい
UPDATE MailingListSubscription
SET PersonID = @DestPerson
WHERE PersonID = @SourcePerson
ただし、送信元の人物と同じ ListID を持つ送信先の人物がこのテーブルに既に存在する場合は、重複したエントリが作成されます。重複したエントリを作成せずにこのアクションを実行するにはどうすればよいですか? (ListID、PersonID が主キー)
編集: 複数の ListID が使用されます。SourcePerson が ListID 1、2、および 3 に割り当てられ、DestinationPerson が ListID 3 および 4 に割り当てられている場合、最終結果には 4 つの行 (ListID 1、2、3、および 4 に割り当てられた DestinationPerson) が必要です。