我有以下架构:
Parcels Segments SegmentsParcels
========= ========== =================
ParcelID SegmentID ParcelID
... Name SegmentID
... id
数据的用户想要合并 Segments.Names,并给了我一个映射到新 Segment.Names 的当前 Segment.Names 列表(所有这些当前都存在)。
所以现在我在一个临时表中有这个列表,其中包含要映射到的 currentID 和 newID。
我想做的是根据这张地图更新 SegmentsParcels 中的 SegmentID。我可以使用以下语句:
update SegmentParcels set segmentID = [newID] from newsegments where segmentID = currentid
但这会创建一些重复我对 SegmentParcels 中的 ParcelID 和 SegmentID 有唯一约束。
解决此问题的最佳方法是什么?我考虑删除约束,然后处理删除重复项(我曾经做过一次并且可能会再次这样做),但我希望有一种更简单的方法。