Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Maintenir la valeur de l'identité sur plusieurs tables

Je ne l'ai pas utilisé moi-même mais je pense que vous avez besoin du nouveau Sequence Object

Vous créeriez un objet de séquence et plutôt que d'utiliser les valeurs d'identité, obtenez simplement la valeur suivante de votre objet de séquence.

Créer un objet de séquence

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

Obtenir la valeur suivante

SELECT NEXT VALUE FOR dbo.Sqnc_Number_Generator AS NxtValue;

SQL FIDDLE