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

@@ IDENTITY, SCOPE_IDENTITY (), OUTPUT và các phương pháp truy xuất danh tính cuối cùng khác

Nó phụ thuộc vào những gì bạn đang cố gắng làm ...

@@ BẢN SẮC

Trả về giá trị IDENTITY cuối cùng được tạo ra trên một kết nối, bất kể bảng tạo ra giá trị và bất kể phạm vi của câu lệnh tạo ra giá trị. @@ IDENTITY sẽ trả về giá trị nhận dạng cuối cùng được nhập vào bảng trong phiên hiện tại của bạn. @@ IDENTITY được giới hạn trong phiên hiện tại và không giới hạn trong phạm vi hiện tại. Ví dụ:nếu bạn có trình kích hoạt trên một bảng khiến danh tính được tạo trong bảng khác, bạn sẽ nhận được danh tính được tạo sau cùng, ngay cả khi chính trình kích hoạt đã tạo ra nó.

SCOPE_IDENTITY ()

Trả về giá trị IDENTITY cuối cùng được tạo ra trên một kết nối và bởi một câu lệnh trong cùng phạm vi, bất kể bảng tạo ra giá trị nào.SCOPE_IDENTITY () tương tự như @@ ​​IDENTITY, nhưng nó cũng sẽ giới hạn giá trị trong phạm vi hiện tại của bạn. Nói cách khác, nó sẽ trả về giá trị nhận dạng cuối cùng mà bạn đã tạo rõ ràng, thay vì bất kỳ giá trị nhận dạng nào được tạo bởi trình kích hoạt hoặc một chức năng do người dùng xác định.

IDENT_CURRENT ()

Trả về giá trị IDENTITY cuối cùng được tạo ra trong một bảng, bất kể kết nối và phạm vi của câu lệnh tạo ra giá trị. IDENT_CURRENT được giới hạn trong một bảng được chỉ định, nhưng không theo kết nối hoặc phạm vi.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách bật tính năng nén trên bảng hiện có trong SQL Server (T-SQL)

  2. Cách xác định lại các cột được trả về bởi một thủ tục được lưu trữ trong SQL Server

  3. Thứ tự của câu lệnh SQL Select không có mệnh đề Order By

  4. Oracle:Có công cụ nào để theo dõi các truy vấn, như Hồ sơ cho máy chủ sql không?

  5. Khi nào tôi cần sử dụng Khối bắt đầu / Kết thúc và từ khóa Go trong SQL Server?