Heim >Datenbank >MySQL-Tutorial >Wie kann ich den Identitätswert nach einer INSERT-Anweisung in SQL abrufen?
Abrufen neu generierter Identitätswerte nach SQL-INSERT-Anweisungen
Nach dem Einfügen von Daten in eine SQL-Tabelle mit einer automatisch inkrementierenden Identitätsspalte müssen Sie häufig auf die neu generierte ID zugreifen. Die OUTPUT
-Klausel bietet eine praktische Möglichkeit, dies zu erreichen.
Diese Anleitung veranschaulicht zwei gängige Methoden zum Abrufen von Identitätswerten mithilfe der OUTPUT
-Klausel:
Methode 1: Ausgabe an die Konsole (und dann an Ihre Anwendung)
Die einfachste Methode gibt den Identitätswert direkt an die Konsole aus. Dies ist nützlich, wenn Sie einzelne Einfügungen bearbeiten und die ID in Ihrem Anwendungscode abrufen:
<code class="language-sql">INSERT INTO MyTable (Name, Address, PhoneNo) OUTPUT INSERTED.ID VALUES ('Yatrix', '1234 Address Stuff', '1112223333');</code>
Ihr Anwendungscode (z. B. unter Verwendung von ExecuteScalar()
von ADO.NET) kann dann diesen einzelnen Ausgabewert erfassen.
Methode 2: Ausgabe in eine Tabellenvariable (für mehrfache Einfügungen oder Weiterverarbeitung)
Für mehrere Einfügungen oder wenn Sie die generierten IDs in Ihrem T-SQL-Code verarbeiten müssen, verwenden Sie eine Tabellenvariable als Ziel der OUTPUT
-Klausel:
<code class="language-sql">DECLARE @OutputTbl TABLE (ID INT); INSERT INTO MyTable (Name, Address, PhoneNo) OUTPUT INSERTED.ID INTO @OutputTbl (ID) VALUES ('Yatrix', '1234 Address Stuff', '1112223333'); -- Now you can access the ID(s) from @OutputTbl SELECT ID FROM @OutputTbl;</code>
Mit dieser Methode können Sie mit mehreren eingefügten IDs direkt in Ihrer gespeicherten Prozedur oder Ihrem T-SQL-Skript arbeiten. Sie können auch eine temporäre Tabelle (#temp
) oder sogar eine permanente Tabelle als Ausgabeziel verwenden.
Das obige ist der detaillierte Inhalt vonWie kann ich den Identitätswert nach einer INSERT-Anweisung in SQL abrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!