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

Trình tự so với danh tính

Tôi nghĩ bạn sẽ tìm thấy câu trả lời của mình ở đây

Sử dụng thuộc tính nhận dạng cho một cột, bạn có thể dễ dàng tạo ra các số tự động tăng dần (thường được sử dụng làm khóa chính). VớiSequence, nó sẽ là một đối tượng khác mà bạn có thể đính kèm vào cột khả dụng trong khi chèn. Không giống như danh tính, số tiếp theo cho giá trị cột sẽ được truy xuất từ ​​bộ nhớ chứ không phải từ đĩa – điều này làm cho Trình tự nhanh hơn đáng kể so với Danh tính. Chúng tôi sẽ tìm hiểu điều này trong các ví dụ sắp tới.

Và đây:

Trình tự:Trình tự đã được cộng đồng SQL Server yêu cầu trong nhiều năm và nó được bao gồm trong bản phát hành này. Sequence là một đối tượng do người dùng xác định sẽ tạo ra một chuỗi số. Đây là ví dụ sử dụng Trình tự.

và ở đây nữa:

Đối tượng chuỗi SQL Server tạo chuỗi số giống như cột nhận dạng trong bảng sql. Nhưng lợi thế của số thứ tự là đối tượng số thứ tự không bị giới hạn với một sqltable.

và trên msdn, bạn cũng có thể đọc thêm về cách sử dụng và lý do tại sao chúng tôi cần nó (tại đây):

Trình tự là một đối tượng liên kết giản đồ do người dùng xác định tạo ra một chuỗi các giá trị số theo đặc điểm kỹ thuật mà trình tự được tạo ra. Chuỗi các giá trị số được tạo theo thứ tự tăng dần hoặc giảm dần tại một khoảng thời gian xác định và có thể xoay vòng (lặp lại) theo yêu cầu. Các chuỗi, không giống như các cột nhận dạng, không được liên kết với các bảng. Một ứng dụng đề cập đến một đối tượng trình tự để nhận giá trị tiếp theo của nó. Mối quan hệ giữa các chuỗi và bảng được kiểm soát bởi ứng dụng. Các ứng dụng của người dùng có thể tham khảo một đối tượng chuỗi và điều phối các khóa giá trị trên nhiều hàng và bảng.

Một trình tự được tạo độc lập với các bảng bằng cách sử dụng câu lệnh CREATESEQUENCE. Các tùy chọn cho phép bạn kiểm soát giá trị gia tăng, giá trị tối đa và tối thiểu, điểm bắt đầu, khả năng khởi động lại tự động và bộ nhớ đệm để cải thiện hiệu suất. Để biết thông tin về các tùy chọn, hãy xem TẠO DANH MỤC.

Không giống như các giá trị cột nhận dạng, được tạo ra khi chèn các hàng, một ứng dụng có thể lấy số thứ tự tiếp theo trước khi chèn hàng bằng cách gọi hàm NEXT VALUE FOR. Số thứ tự được cấp phát khi GIÁ TRỊ TIẾP THEO CHO được gọi ngay cả khi số thứ tự không bao giờ được chèn vào bảng. Hàm NEXT VALUE FOR có thể được sử dụng làm giá trị mặc định cho một cột trong định nghĩa bảng. Sử dụngp_sequence_get_range để nhận một phạm vi gồm nhiều số thứ tự tùy ý.

Một chuỗi có thể được định nghĩa là bất kỳ kiểu dữ liệu số nguyên nào. Nếu kiểu dữ liệu không được chỉ định, một chuỗi sẽ mặc định là bigint.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm thế nào để thực thi một gói SSIS từ .NET?

  2. Giới thiệu tính năng mới - Phân tích bế tắc

  3. Làm thế nào để tránh lỗi chia cho 0 trong SQL?

  4. Tập lệnh khoảng không quảng cáo thu thập SQL Server -1

  5. Ngăn chặn SQL Injection trong ASP.Net