Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Mantenimento del valore di identità su più tabelle

Non l'ho usato da solo, ma penso che tu abbia bisogno del nuovo Sequence Object

Dovresti creare un oggetto sequenza e invece di utilizzare i valori di identità otterrai semplicemente il valore successivo dal tuo oggetto sequenza.

Crea oggetto sequenza

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

Ottenere il valore successivo

SELECT NEXT VALUE FOR dbo.Sqnc_Number_Generator AS NxtValue;

SQL FIDDLE