Это атомно.Это всего лишь один оператор обновления, и у него не будет никаких проблем с параллелизмом, поскольку он будет управляться ядром с блокировками обновления.Вы можете использовать OUTPUT, как показано, или вы можете сделать что-то вроде этого:
DECLARE @unique_id bigint;
UPDATE identifier_table
SET
@unique_id = unique_id + 1,
unique_id = unique_id + 1;
SELECT @unique_id uniqueid;
Если вы сделаете @unique_id
параметром OUTPUT, то вы можете получить значение без оператора select или легко использовать его в другомхранимая процедура.