私は次のスキーマを持っています:
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に一意の制約があります。
これを行うための最良の方法は何ですか?制約を削除してから、重複を削除することを検討しました(これは、ある時点で実行し、おそらく再度実行できます)が、もっと簡単な方法があることを望んでいました。