изменение нумерации в столбце при добавлении строки sql
Для таблицы вида
create table Stations_in_route
(
ID_station_in_route int primary key,
ID_route int,
ID_station int,
Number_in_route int not null
)
Имеется следующий триггер, который выполняет изменение значений в столбце Number_in_route после добавления новой строки в маршрут. Список номеров в маршруте должен оставаться последовательным.
create trigger stations_in_route_after_insert on Stations_in_route
after insert
as
if exists
(select *from Stations_in_route
where Stations_in_route.ID_station_in_route not in (select ID_station_in_route from inserted)
and Stations_in_route.ID_route in (select ID_route from inserted)
and Stations_in_route.Number_in_route in (select Number_in_route from inserted))
begin
update Stations_in_route
set Number_in_route = Number_in_route + 1
where Stations_in_route.ID_station_in_route not in (select ID_station_in_route from inserted)
and Stations_in_route.ID_route in (select ID_route from inserted)
and Stations_in_route.Number_in_route >= (select Number_in_route from inserted where Stations_in_route.ID_route = inserted.ID_route)
end
данный триггер выдаст ошибку, если будет осуществляться вставка в один ID_route Например,
Insert into Stations_in_route values(25, 4, 11, 3),(26, 4, 10, 5)
Как исправить?