Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Dapatkan ID Catatan yang Terakhir Dimasukkan - Akses DAO, ODBC, SQL Server 2008 Identity Field

Sejauh yang saya ketahui @@IDENTITY tidak berfungsi untuk sisipan berbasis kursor. DAO dan ADO keduanya menggunakan kursor di belakang layar.

Setelah Anda .Update catatan Anda harus bisa mendapatkan kembali nilai identitas hanya dengan membaca nilainya.

Berikut ini berfungsi dengan baik untuk saya melalui ADO Recordset yang dibuka dengan semantik Keyset:

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

Berikut ini berfungsi dengan baik untuk saya melalui DAO Recordset yang dibuka dengan semantik Dynaset:

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

Anda harus menghindari .Requery dan .MoveFirst , Anda memperkenalkan masalah konkurensi. Pertimbangkan:

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. Manajer Konfigurasi Server SQL tidak ditemukan

  2. Apa gunanya Katalog Awal dalam string koneksi SQL Server?

  3. Keamanan Ketat CLR di SQL Server 2017

  4. DISTINCT hanya untuk satu kolom

  5. Linq To Sql dan identity_insert