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

Vedligeholdelse af identitetsværdi på tværs af flere tabeller

Jeg har ikke selv brugt det, men jeg tror, ​​du har brug for den nye Sequence Object

Du ville oprette et sekvensobjekt og i stedet for at bruge identitetsværdier bare få den næste værdi fra dit sekvensobjekt.

Opret sekvensobjekt

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

Få næste værdi

SELECT NEXT VALUE FOR dbo.Sqnc_Number_Generator AS NxtValue;

SQL FIDDLE




  1. Sådan sammenlignes to tabeller i MySQL

  2. Brug af dynamisk navngiven tabel i SSIS dataflowopgave

  3. Bedste indeks(er) at bruge til en OR-sætning i SQL Server

  4. Kan Oracles standard objektlås timeout ændres?