У меня есть таблица со столбцом под названием «Приоритет». Никакие две записи не должны иметь одинаковое значение приоритета.
Если я добавлю новую запись с тем же значением приоритета, что и у существующей записи, она должна увеличить
Приоритет других записей, которые следуют, ЕСЛИ приращение предыдущей строки вызывает дублирующийся приоритет.
Например:
Мы хотим вставить запись с приоритетом 2.
(ДО)
приоритет
1
2
3
5
(ПОСЛЕ)
приоритет
1
2
3
4
5
Другой пример:
Вставить запись с приоритетом 2
(ДО)
приоритет
1
2
3
5
7
(ПОСЛЕ)
приоритет
1
2
3
4
5
7 * * тысяча двадцать-один
Я делаю это с помощью следующего кода, и он работает до тех пор, пока в последовательности нет пробелов:
UPDATE MyTable SET Priority = Priority + 1
WHERE LocationId = @LocationId AND Priority >= @priorityToInsert
Проблема в том, что этот оператор обновления увеличивает ВСЕ значения приоритета. Пример № 2 выше не удается
потому что запись с приоритетом 7 увеличивается до 8, а это не так.
Пожалуйста, помогите!