Кто-то исправит меня, если я ошибаюсь, но , пока ваш вызов MAX () находится в том же шаге, что и ваша вставка, у вас не будет проблем с параллелизмом.
Итак, вы могли бы не сделать
select @newOrderID=max(ClientOrderID) + 1
from orders
where clientid=@myClientID;
insert into ( ClientID, ClientOrderID, ...)
values( @myClientID, @newOrderID, ...);
Но вы можете сделать
insert into ( ClientID, ClientOrderID, ...)
select @myClientID, max(ClientOrderID) + 1, ...
from orders
where clientid=@myClientID;
Я предполагаю, что OrderID - это столбец идентификаторов.
Опять же, если я ошибаюсь, пожалуйста, дайте мне знать. Желательно с URL