sql >> Databasteknik >  >> RDS >> Sqlserver

Upprätthålla identitetsvärde över flera tabeller

Jag har inte använt det själv men jag tror att du behöver den nya Sequence Object

Du skulle skapa ett sekvensobjekt och istället för att använda identitetsvärden hämta nästa värde från ditt sekvensobjekt.

Skapa 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ästa värde

SELECT NEXT VALUE FOR dbo.Sqnc_Number_Generator AS NxtValue;

SQL FIDDLE




  1. Hur lägger man till ett <br/> efter varje resultat, men inte det sista resultatet?

  2. Hur man ger företräde till nullvärde under val

  3. Enkelt sätt att förhindra ett Divide By Zero-fel i SQL

  4. Hur kontrollerar jag om tabellnamn är giltiga i Propel?