Erhalten Sie die neueste ID nach dem Einfügen in die SQL Server-Datenbank
Nach dem Einfügen von Daten in die Datenbank ist es häufig erforderlich, die ID des zuletzt eingefügten Datensatzes zu ermitteln. Schauen wir uns ein Szenario an: Nachdem wir eine Zeile in die Tabelle aspnet_GameProfiles eingefügt haben, müssen wir die automatisch inkrementierte GamesProfileId erhalten.
Der folgende Codeausschnitt führt eine INSERT-Anweisung aus, verfügt jedoch über keinen Mechanismus zum Erfassen der neu generierten GamesProfileId. Um dies zu erreichen, werden wir je nach verwendeter SQL Server-Version verschiedene Methoden untersuchen.
SQL Server 2005 und höher (kein Einfügetrigger)
Wenn für SQL Server 2005 und höher kein Einfügetrigger in der Tabelle aspnet_GameProfiles definiert ist, können Sie die Einfügeanweisung so ändern, dass sie eine OUTPUT-Klausel enthält:
<code class="language-sql">INSERT INTO aspnet_GameProfiles(UserId,GameId) OUTPUT INSERTED.ID VALUES(@UserId, @GameId)</code>
Dadurch wird automatisch die eingefügte ID als Ausgabe der Abfrage zurückgegeben. Sie können es mit dem folgenden Code abrufen:
<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 oder Trigger einfügen
Wenn Sie SQL Server 2000 verwenden oder Einfügetrigger für die Tabelle haben, können Sie die Funktion SCOPE_IDENTITY() verwenden:
<code class="language-sql">INSERT INTO aspnet_GameProfiles(UserId,GameId) VALUES(@UserId, @GameId); SELECT SCOPE_IDENTITY()</code>
Nachdem Sie die Abfrage ausgeführt haben, können Sie die zuletzt eingegebene ID mit dem folgenden Code abrufen:
<code class="language-csharp">SqlCommand myCommand = new SqlCommand(insertSql, myConnection); ... Int32 newId = (Int32) myCommand.ExecuteScalar();</code>
Durch die Verwendung dieser Techniken können Sie effektiv die zuletzt eingefügte GamesProfileId abrufen und sie so in Ihrer Anwendung für spätere Einfügungen oder andere Vorgänge verwenden.
Das obige ist der detaillierte Inhalt vonWie rufe ich die zuletzt eingefügte ID nach einer Datenbankeinfügung in SQL Server ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!