Heim >Datenbank >MySQL-Tutorial >Wie kann ich Identitätswerte nach einer INSERT-Anweisung mithilfe der OUTPUT-Klausel von SQL Server abrufen?
Abrufen neu generierter Identitätswerte mit der OUTPUT-Klausel von SQL Server
Beim Einfügen von Daten in eine SQL Server-Datenbank benötigen Sie häufig den neu generierten Identitätswert für die eingefügte Zeile. Die OUTPUT
-Klausel bietet eine saubere und effiziente Möglichkeit, dies zu erreichen. In diesem Artikel werden zwei Hauptmethoden untersucht.
Methode 1: Ausgabe auf Konsole oder Verwendung von ExecuteScalar()
Zum schnellen Debuggen oder Abrufen des Identitätswerts in einem Nicht-T-SQL-Kontext (wie einer .NET-Anwendung) kann die OUTPUT
-Klausel den Wert direkt an die SSMS-Konsole senden oder mit ExecuteScalar()
erfasst werden.
<code class="language-sql">INSERT INTO MyTable(Name, Address, PhoneNo) OUTPUT INSERTED.ID VALUES ('Yatrix', '1234 Address Stuff', '1112223333')</code>
In .NET:
<code class="language-csharp">int newId = command.ExecuteScalar();</code>
Methode 2: Ausgabe in Tabellenvariable oder temporäre Tabelle
Für Szenarien, die den Identitätswert innerhalb einer gespeicherten T-SQL-Prozedur oder eines Stapels erfordern, bietet eine Tabellenvariable oder eine temporäre Tabelle eine leistungsstarke Lösung. Die OUTPUT
-Klausel leitet den eingefügten Identitätswert in diese Tabelle und ermöglicht so die weitere Verarbeitung innerhalb der T-SQL-Umgebung.
<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 use the ID from @OutputTbl SELECT ID FROM @OutputTbl;</code>
Diese Techniken ermöglichen es Entwicklern, generierte Identitätswerte nahtlos aus INSERT
-Anweisungen abzurufen, was das Debuggen erleichtert, Werte an Anwendungen zurückgibt und komplexe T-SQL-Workflows ermöglicht.
Das obige ist der detaillierte Inhalt vonWie kann ich Identitätswerte nach einer INSERT-Anweisung mithilfe der OUTPUT-Klausel von SQL Server abrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!