Heim >Datenbank >MySQL-Tutorial >Wie rufe ich die zuletzt eingefügte ID in SQL Server nach einer INSERT-Anweisung ab?

Wie rufe ich die zuletzt eingefügte ID in SQL Server nach einer INSERT-Anweisung ab?

DDD
DDDOriginal
2025-01-21 23:02:11195Durchsuche

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

Zugriff auf die ID des neu erstellten Datensatzes in SQL Server

Diese Anleitung zeigt, wie Sie die ID des zuletzt in die aspnet_GameProfiles-Tabelle in SQL Server eingefügten Datensatzes erhalten. Die optimale Methode hängt von Ihrer SQL Server-Version ab:

SQL Server 2005 und höher (ohne INSERT-Trigger):

Der effizienteste Ansatz für neuere SQL Server-Versionen besteht darin, die OUTPUT-Klausel direkt in der INSERT-Anweisung zu nutzen:

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

Anschließend rufen Sie die generierte ID mit ExecuteScalar():

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

Diese Methode vermeidet eine zusätzliche Abfrage und verbessert so die Leistung.

SQL Server 2000 oder bei Verwendung von INSERT-Triggern:

Für ältere SQL Server-Versionen oder Szenarien mit INSERT-Triggern verwenden Sie die Funktion SCOPE_IDENTITY():

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

Auf die abgerufene ID kann dann mit ExecuteScalar():

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

Mit einer dieser Methoden können Sie die neu generierte ID nahtlos von aspnet_GameProfiles abrufen und so nachfolgende Vorgänge ermöglichen, die diese Informationen erfordern.

Das obige ist der detaillierte Inhalt vonWie rufe ich die zuletzt eingefügte ID in SQL Server nach einer INSERT-Anweisung ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn