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

Làm cách nào để SQL Server tạo ra các giá trị trong một cột nhận dạng?

Bạn đang mắc phải sai lầm phổ biến khi giả định một thứ tự trong bảng. Bàn không có thứ tự. Chỉ những kết quả mới có thứ tự, không được xác định trừ khi một ORDER BY rõ ràng được chỉ định.

Bạn có thể hỏi một câu hỏi khác:giá trị được tạo danh tính được gán như thế nào trong trường hợp chèn đồng thời? Câu trả lời rất đơn giản: không quan trọng . Và nếu bạn đưa ra bất kỳ giả định nào về đơn hàng thì mã của bạn bị hỏng. Tương tự đối với các khoảng trống. Ứng dụng của bạn sẽ hoạt động ngay cả khi danh tính được tạo hoàn toàn ngẫu nhiên và ứng dụng được viết chính xác sẽ làm việc nếu danh tính là hoàn toàn ngẫu nhiên. Sử dụng SCOPE_IDENTITY() để truy xuất danh tính được chèn cuối cùng. Vẫn tốt hơn, hãy sử dụng OUTPUT mệnh đề của INSERT , nó cũng hoạt động cho chèn nhiều hàng.

Đối với bản ghi:danh tính được tạo theo thứ tự mà các hoạt động có được quyền truy cập vào luồng nhật ký .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chèn dữ liệu thông qua một hàm có giá trị bảng trong SQL Server

  2. [Sql-Server] sử dụng kiểu dữ liệu nào cho các giá trị muối và băm mật khẩu và độ dài là bao nhiêu?

  3. Hàm SUM () trong SQL Server

  4. Làm cách nào để chuyển đổi bigint (dấu thời gian UNIX) thành datetime trong SQL Server?

  5. SQL Server xử lý các giao dịch UPDATE như thế nào?