У меня есть следующая схема:
Parcels Segments SegmentsParcels
========= ========== =================
ParcelID SegmentID ParcelID
... Name SegmentID
... id
Пользователь данных хочет объединить Segments.Names и предоставил мне список текущих Segment.Names, сопоставленных с новым Segment.Names (все из которых существуют в настоящее время).
Так что теперь у меня есть этот список во временной таблице с currentID и newID для сопоставления.
Что я хочу сделать, это обновить SegmentID в SegmentsParcels на основе этой карты. Я мог бы использовать утверждение:
update SegmentParcels set segmentID = [newID] from newsegments where segmentID = currentid
но это создаст несколько дубликатов. У меня есть уникальное ограничение на ParcelID и SegmentID в SegmentParcels.
Как лучше всего это сделать? Я подумал об удалении ограничения, а затем занялся удалением дубликатов (что я сделал в один момент и, вероятно, мог бы повторить снова), но я надеялся, что есть более простой способ.