Господа, написал процедуру поиска и замены значений справочников(вообще, конечно, любых значений) посредством SQL, во всех таблицах. Работает нормально, но возникает один вопрос - изредка ругается на неуникальность вставляемой строки в таблицу изменений(есть такая при обмене). Там висит уникальный кластерный индекс, понятное дело, что при замене значений я его сменить не могу. Вот и я так себе думаю - а не возникнет ли конфликт при обмене, когда строка таблицы изменений будет ссылаться на элемент, который заменен уже на другой во всех остальных таблицах?. По идее, такую строку в таблице изменений надо удалять... Поделитесь мыслями
Мне кажется что не удалять а заменять надо аналогично и в таблице изменений.
+ делать дополнительную вставку в таблицу изменений всех тех подмен что сделал.
(1) Это все в пределах одной базы. Ну, объединить любые задвоившиеся элементы справочников, перечислений и пр. Т.е. как таковые изменения передавать никуда не нужно, просто два (и более) элементов заменились одним. Он в том числе подменился и в таблице соответствия объектов для обмена. В данном случае если нового элемента нет в таблице изменений, то он туда попадет апдейтом, а вот если там оба элемента - то старый нужно удалять.
Если до обработки в таблице изменения была запись с ссылкой на измененную топой запись, то нужно ее изменить с новым _MessageNo. Пока не разбирался с восмерочными апдейтами