Что произойдет, если во время выполнения транзакции другой клиентский компьютер выполняет вставку?
У меня есть два клиентских компьютера и одна БД.На этих компьютерах установлена одна и та же программа.Допустим, у нас есть таблица заказов и столбец salesorder #, этот столбец UNIQUE.
Если оба компьютера будут работать одновременно, я знаю, что сервер SQL выберет одну из транзакций и заставит другую ждать.Таким образом, эта транзакция выполняется следующим образом:
@ordernumber= SELECT TOP Salesorder# +1 .
INSERT INTO order (salesorder#,dateship, user) VALUES (@ordernumber,GETDATE(),1,)
. Я полагаю, что если бы оба события произошли в одно и то же время, он просто выбрал бы один из них, полностью запустился, а затем сделал бы то же самое для другого.Это правильно?
Что происходит в другом сценарии.Если транзакция начинается, и другой оператор INSERT (не оператор TRANSACTION Just INSERT) запрашивается после оператора SELECT, но до того, как произойдет INSERT.
Что будет делать SQL Server в этой ситуации?Это вообще возможно?