Пожалуйста, смотрите код ниже, чтобы сгенерировать уникальный возрастающий номер из базового номера, хранящегося в строке таблицы параметров. Интересно, это безопасный способ предотвратить одновременное использование одного и того же числа?
Мои знания о параллелизме на сервере SQL ограничены, поэтому я надеюсь, что здесь есть несколько экспертов, которые дадут мне несколько советов, если это Код предотвращает одновременное использование одного и того же номера. Любая помощь или мысли высоко ценятся.
/* Create table to store temporary value */
declare @bedrijf_parameter_voor_update table (bedrijf_parameter_id id, afleverbon_start_nr int)
/* Raise counter by 1 */
update bedrijf_parameter
set afleverbon_start_nr = afleverbon_start_nr + 1
/* Store deleted row to use as order number */
output deleted.bedrijf_parameter_id, deleted.afleverbon_start_nr into @bedrijf_parameter_voor_update
where bedrijf_parameter_id = 1 --there is only one row in bedrijfs_parameter which holds all the parameters of the application
/* Write the order number to the transport table */
update transport
set vracht_bon_nummer = (select afleverbon_start_nr from @bedrijf_parameter_voor_update where bedrijf_parameter_id = 1)
where transport_id = @transport_id and vracht_bon_nummer is null