Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Beibehalten des Identitätswerts über mehrere Tabellen hinweg

Ich habe es selbst nicht verwendet, aber ich denke, Sie brauchen das neue Sequence Object

Sie würden ein Sequenzobjekt erstellen und anstatt Identitätswerte zu verwenden, einfach den nächsten Wert aus Ihrem Sequenzobjekt abrufen.

Sequenzobjekt erstellen

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

Nächsten Wert abrufen

SELECT NEXT VALUE FOR dbo.Sqnc_Number_Generator AS NxtValue;

SQL FIDDLE