Zugriff auf die ID der zuletzt hinzugefügten Zeile in SQL
Nach dem Einfügen neuer Daten in eine Datenbanktabelle müssen Sie häufig die automatisch generierte ID der neuen Zeile abrufen. Dieser Artikel zeigt mehrere SQL-Methoden zum Abrufen dieser ID, wodurch temporäre Tabellen überflüssig werden.
SCOPE_IDENTITY()
Für Tabellen mit einer INT
- oder BIGINT
-Spalte, die als Identitätsspalte festgelegt ist, ruft SCOPE_IDENTITY()
effizient die ID nach einer INSERT
-Anweisung ab. So geht's:
<code class="language-sql">INSERT INTO dbo.YourTable(columns....) VALUES(..........) SELECT SCOPE_IDENTITY()</code>
Dies gibt den zuletzt eingefügten Identitätswert innerhalb des aktuellen Bereichs zurück (der durch verschachtelte Transaktionen beeinflusst werden kann).
@@IDENTITY
@@IDENTITY
ist eine globale Variable, die den zuletzt zugewiesenen Identitätswert enthält. Benutzen Sie es so:
<code class="language-sql">INSERT INTO dbo.YourTable(columns....) VALUES(..........) SELECT @@IDENTITY</code>
@@IDENTITY
spiegelt jedoch den letzten Identitätswert in allen Bereichen wider, möglicherweise einschließlich früherer Einfügungen in verschachtelten Transaktionen. Dies könnte zu falschen Ergebnissen führen, wenn in derselben Sitzung mehrere Einfügungen erfolgten.
IDENT_CURRENT()
IDENT_CURRENT()
bietet eine weitere Option. Es ruft den Identitätswert für eine bestimmte Tabelle ab, unabhängig von Umfang oder Transaktion:
<code class="language-sql">INSERT INTO dbo.YourTable(columns....) VALUES(..........) SELECT IDENT_CURRENT('dbo.YourTable')</code>
IDENT_CURRENT()
garantiert, dass die ID aus der angegebenen Tabelle stammt, auch bei mehreren Einfügungen innerhalb verschachtelter Transaktionen.
Zusammenfassung
Datenbankentwickler müssen diese verschiedenen Methoden zum Abrufen der zuletzt eingefügten Zeilen-ID verstehen. Die Auswahl der richtigen Methode, basierend auf Ihrer Tabellenstruktur und dem Kontext Ihrer Vorgänge, gewährleistet einen genauen ID-Abruf und wahrt die Datenintegrität.
Das obige ist der detaillierte Inhalt vonWie rufe ich die zuletzt eingefügte Zeilen-ID in SQL ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!