【发布时间】:2010-04-20 20:24:09
【问题描述】:
我有以下架构:
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 有唯一约束。
解决此问题的最佳方法是什么?我考虑过删除约束,然后处理删除重复项(我曾经做过一次,可能会再做一次),但我希望有一种更简单的方法。
【问题讨论】:
标签: sql-server tsql unique-constraint common-table-expression