ник: osmor
На мой взгляд решение выбрано крайне неудачное. Нельзя изменение ключевого поля вводить в правило, это должно быть исключением.
Построение иерархии лучше делать добавлением полей
"Код родителя" - код записи которая является родителем (начальником или подразделением) для текущей"
"вес должности (или отдела) в иерархии" - чем выше должность тем выше уровень
например:
начальник отдела - 10
зам. начальника - 20
начальник сектора - 30
это позволит сортировать сотрудников в зависимости должности внутри одного подразделения
такой же "вес" можно ввести для подразделений
Сотрудники с одинаковым "весом" должности сортируются по алфавиту.
при такой структуре добавление нового (перемещении) сотрудника не требует изменения в других записях. если вдруг сотрудник начальником отдела, он просто получает должность с новым "весом" и автоматически перемещается вверх по списку.
локально решить Вашу задачу можно запросом на обновление увеличивающего на 1 коды всех сотрудников у которых код больше чем код добавляемого сотрудника
UPDATE tblStuff SET код_сотр = [код_сотр]+1
WHERE [код_сотр]>=[новый код];
|