Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mendapatkan ID Terakhir Dimasukkan dalam Pelayan SQL Selepas Pernyataan INSERT?

Bagaimana untuk Mendapatkan ID Terakhir Dimasukkan dalam Pelayan SQL Selepas Pernyataan INSERT?

DDD
DDDasal
2025-01-21 23:02:11198semak imbas

How to Retrieve the Last Inserted ID in SQL Server After an INSERT Statement?

Mengakses ID Rekod yang Baru Dicipta dalam Pelayan SQL

Panduan ini menunjukkan cara mendapatkan ID rekod yang paling baru dimasukkan ke dalam jadual aspnet_GameProfiles dalam SQL Server. Kaedah optimum bergantung pada versi SQL Server anda:

SQL Server 2005 dan Kemudian (Tanpa Pencetus INSERT):

Pendekatan paling berkesan untuk versi SQL Server yang lebih baharu ialah memanfaatkan klausa OUTPUT terus dalam pernyataan INSERT:

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

Seterusnya, dapatkan ID yang dijana menggunakan ExecuteScalar():

<code class="language-csharp">Int32 newId = (Int32)myCommand.ExecuteScalar();</code>

Kaedah ini mengelakkan pertanyaan tambahan, meningkatkan prestasi.

SQL Server 2000 atau Apabila Menggunakan Pencetus INSERT:

Untuk versi atau senario SQL Server lama yang melibatkan pencetus INSERT, gunakan fungsi SCOPE_IDENTITY():

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

ID yang diambil kemudiannya boleh diakses menggunakan ExecuteScalar():

<code class="language-csharp">Int32 newId = (Int32)myCommand.ExecuteScalar();</code>

Dengan menggunakan salah satu kaedah ini, anda boleh mendapatkan ID yang baru dijana dengan lancar daripada aspnet_GameProfiles, membolehkan operasi seterusnya yang memerlukan maklumat ini.

Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan ID Terakhir Dimasukkan dalam Pelayan SQL Selepas Pernyataan INSERT?. 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