我有一个只包含两列的表 - ListID 和 PersonID。当一个人在系统中与另一个人合并时,我要将“源”人的所有引用更新为对“目标”人的引用。
理想情况下,我想调用一些简单的东西
UPDATE MailingListSubscription
SET PersonID = @DestPerson
WHERE PersonID = @SourcePerson
但是,如果目标人员已经存在于此表中,并且与源人员具有相同的 ListID,则会创建重复条目。如何在不创建重复条目的情况下执行此操作?(ListID,PersonID为主键)
编辑:使用多个 ListID。如果 SourcePerson 分配给 ListID 1、2 和 3,而 DestinationPerson 分配给 ListID 3 和 4,则最终结果需要有四行 - DestinationPerson 分配给 ListID 1、2、3 和 4。