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

Nhận ID của Bản ghi được Chèn Cuối cùng - Truy cập Trường Nhận dạng DAO, ODBC, SQL Server 2008

Theo như tôi biết @@IDENTITY không hoạt động đối với chèn dựa trên con trỏ. DAO và ADO đều sử dụng con trỏ ở hậu trường.

Sau khi bạn .Update bản ghi mà bạn có thể lấy lại giá trị nhận dạng chỉ bằng cách đọc giá trị.

Phần sau hoạt động tốt đối với tôi thông qua Tập bản ghi ADO được mở bằng ngữ nghĩa Keyset:

r.Update
Debug.Print r("ItemID")

Những điều sau đây hoạt động tốt đối với tôi thông qua Bộ ghi âm DAO được mở bằng ngữ nghĩa Dynaset:

r.Update
r.Bookmark = r.LastModified
Debug.Print r("ItemID")

Bạn nên tránh .Requery.MoveFirst , bạn đang giới thiệu các vấn đề về đồng thời. Cân nhắc:

Dim r as DAO.Recordset, db as DAO.Database
Set db = CurrentDb
Set r = db.OpenRecordset("SELECT TOP 1 * FROM item ORDER BY ItemID DESC", dbOpenDynaset, dbSeeChanges)
r.AddNew
''// Set field values here
r.Update
''// At this point another user adds a new record
r.Requery
r.MoveFirst ''// ORDER BY ItemID DESC means that you're going to see the new user's row
Debug.Print r("ItemID")


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Xóa tài khoản thư cơ sở dữ liệu trong SQL Server (T-SQL)

  2. Tôi đang cố gắng tạo một thủ tục được lưu trữ để tạo thông tin đăng nhập và người dùng cơ sở dữ liệu?

  3. Làm cách nào để chèn một bản ghi chỉ có các giá trị mặc định?

  4. Chèn 2 triệu hàng vào SQL Server nhanh chóng

  5. Ý nghĩa của khóa ngoại tự tham chiếu là gì?