Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Utrzymywanie wartości tożsamości w wielu tabelach

Sam go nie używałem, ale myślę, że potrzebujesz nowego Sequence Object

Utworzyłbyś obiekt sekwencji, a zamiast używać wartości tożsamości, po prostu pobierz następną wartość z obiektu sekwencji.

Utwórz obiekt sekwencji

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

Uzyskiwanie następnej wartości

SELECT NEXT VALUE FOR dbo.Sqnc_Number_Generator AS NxtValue;

SQL FIDDLE




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Logowanie nie powiodło się dla użytkownika „NT AUTHORITY\NETWORK SERVICE”

  2. Jak zmienić nazwę czegoś w SQL Server, co ma w nazwie nawiasy kwadratowe?

  3. Wywołanie niezdefiniowanej funkcji sqlsrv_connect() — rozwiązywanie problemów

  4. classNotFoundException podczas ładowania sterownika JDBC

  5. Pełna tabela transpozycji SQL