Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mendapatkan ID Terakhir Dimasukkan Selepas Penyisipan Pangkalan Data dalam Pelayan SQL?

Bagaimana untuk Mendapatkan ID Terakhir Dimasukkan Selepas Penyisipan Pangkalan Data dalam Pelayan SQL?

DDD
DDDasal
2025-01-21 23:12:13345semak imbas

How to Retrieve the Last Inserted ID After a Database Insertion in SQL Server?

Dapatkan ID terkini selepas memasukkan ke dalam pangkalan data SQL Server

Selepas memasukkan data ke dalam pangkalan data, selalunya perlu mendapatkan ID rekod yang dimasukkan terkini. Mari kita lihat senario: Selepas memasukkan baris ke dalam jadual aspnet_GameProfiles, kita perlu mendapatkan GamesProfileId yang dinaikkan secara automatik.

Coretan kod berikut melaksanakan pernyataan INSERT tetapi tidak mempunyai mekanisme untuk menangkap GamesProfileId yang baru dijana. Untuk mencapai matlamat ini, kami akan meneroka kaedah yang berbeza berdasarkan versi SQL Server yang digunakan.

SQL Server 2005 dan ke atas (tiada pencetus sisipan)

Untuk SQL Server 2005 dan ke atas, jika tiada pencetus sisipan ditakrifkan pada jadual aspnet_GameProfiles, anda boleh mengubah suai pernyataan sisipan untuk memasukkan klausa OUTPUT:

<code class="language-sql">INSERT INTO aspnet_GameProfiles(UserId,GameId)
OUTPUT INSERTED.ID
VALUES(@UserId, @GameId)</code>

Ini akan secara automatik mengembalikan ID yang dimasukkan sebagai output pertanyaan. Anda boleh mendapatkannya menggunakan kod berikut:

<code class="language-csharp">SqlCommand myCommand = new SqlCommand(insertSql, myConnection);
...
SqlDataReader reader = myCommand.ExecuteReader();
reader.Read();
Int32 newId = reader.GetInt32(0);</code>

SQL Server 2000 atau masukkan pencetus

Jika anda menggunakan SQL Server 2000 atau mempunyai pencetus sisipan pada jadual, anda boleh menggunakan fungsi SCOPE_IDENTITY():

<code class="language-sql">INSERT INTO aspnet_GameProfiles(UserId,GameId) 
VALUES(@UserId, @GameId);
SELECT SCOPE_IDENTITY()</code>

Selepas melaksanakan pertanyaan, anda boleh mendapatkan semula ID yang dimasukkan terbaharu menggunakan kod berikut:

<code class="language-csharp">SqlCommand myCommand = new SqlCommand(insertSql, myConnection);
...
Int32 newId = (Int32) myCommand.ExecuteScalar();</code>

Dengan menggunakan teknik ini, anda boleh mendapatkan GamesProfileId yang dimasukkan terakhir dengan berkesan, dengan itu boleh menggunakannya dalam aplikasi anda untuk sisipan berikutnya atau operasi lain.

Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan ID Terakhir Dimasukkan Selepas Penyisipan Pangkalan Data dalam Pelayan SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn