Ermitteln der ID der zuletzt eingefügten Zeile
Bei der Arbeit mit SQL Server-Datenbanken und automatisch inkrementierenden Primärschlüsseln ist der Zugriff auf die ID des zuletzt hinzugefügten Datensatzes eine häufige Anforderung. In diesem Leitfaden werden verschiedene Methoden beschrieben, um dies zu erreichen, wobei unterschiedliche SQL Server-Versionen und das mögliche Vorhandensein von Einfügetriggern berücksichtigt werden.
SQL Server 2005 und höher (ohne Einfügetrigger)
Für Versionen ab 2005 besteht ein optimierter Ansatz darin, die OUTPUT INSERTED.ID
-Klausel direkt in Ihre INSERT
-Anweisung zu integrieren. Diese Klausel gibt effizient die ID der neu eingefügten Zeile zurück. Hier ist ein Beispiel:
<code class="language-sql">INSERT INTO aspnet_GameProfiles (UserId, GameId) OUTPUT INSERTED.ID VALUES (@UserId, @GameId);</code>
Die neu generierte ID ist dann über die ExecuteScalar()
-Methode Ihres SqlCommand
-Objekts:
<code class="language-csharp">Int32 newId = (Int32)myCommand.ExecuteScalar();</code>
SQL Server 2000 oder wenn Einfügetrigger vorhanden sind
In SQL Server 2000 oder Szenarios mit Einfügetriggern ist eine etwas andere Strategie erforderlich:
INSERT
aus.SCOPE_IDENTITY()
, um den zuletzt eingefügten Identitätswert abzurufen.<code class="language-sql">INSERT INTO aspnet_GameProfiles (UserId, GameId) VALUES (@UserId, @GameId); SELECT SCOPE_IDENTITY();</code>
Ähnlich wie bei der vorherigen Methode kann ExecuteScalar()
verwendet werden, um die resultierende ID zu erhalten:
<code class="language-csharp">Int32 newId = (Int32)myCommand.ExecuteScalar();</code>
Diese Methoden bieten effiziente und zuverlässige Möglichkeiten zum Abrufen der ID der zuletzt eingefügten Zeile und ermöglichen so eine nahtlose Integration mit nachfolgenden Datenbankvorgängen.
Das obige ist der detaillierte Inhalt vonWie rufe ich die zuletzt eingefügte ID in SQL Server ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!