Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Duy trì giá trị danh tính trên nhiều bảng

Bản thân tôi chưa sử dụng nhưng tôi nghĩ bạn cần Sequence Object

Bạn sẽ Tạo một Đối tượng Trình tự và sau đó sử dụng các giá trị Danh tính chỉ lấy giá trị tiếp theo từ đối tượng trình tự của bạn.

Tạo đối tượng trình tự

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

Nhận giá trị tiếp theo

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. Khắc phục “date không tương thích với int” trong SQL Server khi thêm vào hoặc trừ ngày

  2. Tính toán kho từng sản phẩm (Mã mực)

  3. Truy vấn SQL để xóa các giá trị trùng lặp trong liên kết bên trong 3 bảng với hai cơ sở dữ liệu khác nhau

  4. Làm thế nào để thực hiện một truy vấn vòng lặp sql để kiểm tra sự khác biệt giữa các giá trị?

  5. Truy vấn SQL - Xóa các bản sao nếu nhiều hơn 3 lỗi?