Heim > Datenbank > MySQL-Tutorial > Wie rufe ich neu generierte Identitätswerte in SQL Server ab?

Wie rufe ich neu generierte Identitätswerte in SQL Server ab?

Linda Hamilton
Freigeben: 2025-01-23 09:03:11
Original
725 Leute haben es durchsucht

How to Retrieve Newly Generated Identity Values in SQL Server?

SQL Server-Identitätswertabrufmethoden: Ein umfassender Leitfaden

Beim Arbeiten mit SQL Server-Tabellen, die Identitätsspalten enthalten, ist das Abrufen des neu generierten Identitätswerts nach einem Einfügevorgang von entscheidender Bedeutung. In diesem Leitfaden werden die verschiedenen Funktionen und Techniken erläutert, die für diesen Zweck verfügbar sind: @@IDENTITY, IDENT_CURRENT, SCOPE_IDENTITY() und die OUTPUT-Klausel.

Die Optionen verstehen

Jede Methode bietet ein anderes Maß an Umfang und Zuverlässigkeit:

  • @@IDENTITY: Diese Funktion gibt den letzten Identitätswert zurück, der innerhalb der aktuellen Sitzung generiert wurde, unabhängig von der spezifischen Tabelle oder Anweisung. Obwohl es einfach zu verwenden ist, ist es aufgrund seines breiten Anwendungsbereichs fehleranfällig, wenn innerhalb derselben Sitzung mehrere Einfügungen erfolgen. Mit Vorsicht verwenden.

  • IDENT_CURRENT('tableName'): Diese Funktion zielt speziell auf eine bestimmte Tabelle (tableName) ab und ruft den letzten für diese Tabelle generierten Identitätswert über alle Sitzungen und Bereiche hinweg ab. Es wird weniger häufig verwendet, bietet aber einen höheren Grad an Spezifität als @@IDENTITY.

  • SCOPE_IDENTITY(): Dies ist im Allgemeinen die bevorzugte Methode. Es gibt den letzten Identitätswert zurück, der innerhalb der aktuellen Sitzung und des aktuellen Bereichs (normalerweise der aktuelle Batch oder die aktuelle gespeicherte Prozedur) generiert wurde. Dies bietet eine bessere Isolation und Genauigkeit im Vergleich zu @@IDENTITY.

  • OUTPUT-Klausel: Die OUTPUT-Klausel, die mit der INSERT-Anweisung verwendet wird, bietet eine leistungsstarke und zuverlässige Möglichkeit, die Identitätswerte aller eingefügten Zeilen zu erfassen. Die eingefügten Zeilen werden in eine temporäre Tabelle oder Tabellenvariable geschrieben, sodass Sie die Identitätswerte direkt abfragen können. Dies ist insbesondere beim Umgang mit parallelen Ausführungsplänen von Vorteil. Beachten Sie jedoch, dass die OUTPUT-Klausel vor Triggern ausgeführt wird, was bedeutet, dass sie keine von Triggern generierten Identitätswerte widerspiegelt.

Die richtige Methode wählen

Für die meisten Szenarien bietet SCOPE_IDENTITY() die beste Balance aus Einfachheit und Zuverlässigkeit. @@IDENTITY sollte vermieden werden, es sei denn, sein breiterer Anwendungsbereich ist ausdrücklich erforderlich. IDENT_CURRENT('tableName') bietet bei Bedarf einen spezifischeren Ansatz, und die OUTPUT-Klausel ist aufgrund ihrer Robustheit wertvoll, insbesondere in komplexen Szenarien oder bei der Arbeit mit Parallelverarbeitung. Die Wahl hängt letztendlich von den spezifischen Anforderungen Ihrer Anwendung und der Möglichkeit gleichzeitiger Vorgänge ab.

Das obige ist der detaillierte Inhalt vonWie rufe ich neu generierte Identitätswerte in SQL Server ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage