Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Como manter o valor de identidade em várias tabelas


Eu mesmo não usei, mas acho que você precisa do novo Sequence Object

Você criaria um objeto de sequência e, em vez de usar valores de identidade, apenas obteria o próximo valor do seu objeto de sequência.

Criar objeto de sequência
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

Como obter o próximo valor
SELECT NEXT VALUE FOR dbo.Sqnc_Number_Generator AS NxtValue;

SQL FIDDLE