Самият аз не съм го използвал, но мисля, че имате нужда от новия Sequence Object
Бихте създали обект на последователност и вместо да използвате стойности на идентичност, просто ще получите следващата стойност от вашия обект на последователност.
Създаване на последователен обект
CREATE SEQUENCE Sqnc_Number_Generator AS INT --<-- This can be Bigint as well
START WITH 1 -- Start with value 1
INCREMENT BY 1 -- Increment with value 1
MINVALUE 1 -- Minimum value to start is 1
MAXVALUE 50000 -- Maximum it can go to 5000
NO CYCLE -- Do not go above 5000
CACHE 500 -- Increment 500 values in memory rather than incrementing from IO
Получаване на следващата стойност
SELECT NEXT VALUE FOR dbo.Sqnc_Number_Generator AS NxtValue;