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

Sự khác biệt giữa Scope_Identity (), Identity (), @@ Identity và Ident_Current () là gì?

  • @@identity hàm trả về danh tính cuối cùng được tạo trong cùng một phiên.
  • scope_identity() hàm trả về danh tính cuối cùng được tạo trong cùng một phiên và cùng phạm vi.
  • ident_current(name) trả về danh tính cuối cùng được tạo cho một bảng hoặc chế độ xem cụ thể trong bất kỳ phiên nào.
  • identity() hàm không được sử dụng để lấy danh tính, nó được sử dụng để tạo danh tính trong select...into truy vấn.

Phiên là kết nối cơ sở dữ liệu. Phạm vi là truy vấn hiện tại hoặc thủ tục được lưu trữ hiện tại.

Một tình huống trong đó scope_identity()@@identity các chức năng khác nhau, là nếu bạn có một trình kích hoạt trên bàn. Nếu bạn có truy vấn chèn bản ghi, khiến trình kích hoạt chèn bản ghi khác vào đâu đó, thì scope_identity() hàm sẽ trả về danh tính được tạo bởi truy vấn, trong khi @@identity hàm sẽ trả về danh tính được tạo bởi trình kích hoạt.

Vì vậy, thông thường bạn sẽ sử dụng scope_identity() chức năng.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tại sao SQL Server tự động bỏ qua khoảng trống ở cuối?

  2. So sánh int Sql Server vs nvarchar về hiệu suất?

  3. Entity Framework 6 - Truy vấn thời gian

  4. 4 Mẹo để Chạy Chẩn đoán Máy chủ SQL

  5. LOG10 () Ví dụ trong SQL Server