Heim >Datenbank >MySQL-Tutorial >Wie rufe ich die Identität einer neu eingefügten Zeile in SQL Server ab?

Wie rufe ich die Identität einer neu eingefügten Zeile in SQL Server ab?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2025-01-23 09:16:14488Durchsuche

How to Retrieve the Identity of a Newly Inserted Row in SQL Server?

Abrufen der ID einer neu hinzugefügten Zeile in SQL Server: Erkunden von @@IDENTITY, SCOPE_IDENTITY, IDENT_CURRENT und der OUTPUT-Klausel

Beim Hinzufügen von Zeilen zu einer Tabelle, die eine Identitätsspalte enthält, ist es oft entscheidend, die neu generierte ID zu erhalten. SQL Server bietet mehrere Methoden, um dies zu erreichen, jede mit ihren eigenen Vorteilen und Einschränkungen.

@@IDENTITY

Diese Funktion gibt den zuletzt generierten Identitätswert für alle Tabellen innerhalb der aktuellen Sitzung zurück. Daher spiegelt der zurückgegebene Wert möglicherweise nicht immer die ID der Zeile wider, die Sie gerade eingefügt haben. Dies erweist sich als nützlich, wenn die ID von einem Trigger oder einer anderen Anweisung abgerufen wird, die innerhalb derselben Sitzung ausgeführt wird.

SCOPE_IDENTITY()

SCOPE_IDENTITY() stellt den letzten Identitätswert bereit, der innerhalb der aktuellen Sitzung und des aktuellen Bereichs generiert wurde. Dies ist im Allgemeinen die bevorzugte Methode zum Abrufen der ID der Zeile, die Sie gerade hinzugefügt haben.

IDENT_CURRENT('tableName')

Diese Funktion ruft den letzten Identitätswert ab, der für eine bestimmte Tabelle generiert wurde, unabhängig von der Sitzung oder dem Bereich. Dies ist hilfreich, wenn Sie die ID für eine Tabelle benötigen, in die Sie keinen Datensatz direkt eingefügt haben.

OUTPUT-Klausel

Die OUTPUT-Klausel der INSERT-Anweisung ermöglicht den Zugriff auf jede von dieser Anweisung eingefügte Zeile, einschließlich Identitätswerten. Die Ausgabe kann zum späteren Abrufen der ID an eine temporäre Tabelle oder Variable weitergeleitet werden.

Auswahl des besten Ansatzes

Die optimale Methode hängt von Ihren spezifischen Bedürfnissen ab:

  • Verwenden Sie @@IDENTITY, wenn Sie die ID von einem Trigger oder einer anderen Anweisung innerhalb derselben Sitzung erhalten.
  • Für die ID der Zeile, die Sie gerade eingefügt haben, ist SCOPE_IDENTITY() der empfohlene Ansatz.
  • Verwenden Sie IDENT_CURRENT('tableName'), um die ID für eine Tabelle abzurufen, ohne dass kürzlich ein Datensatz eingefügt wurde.
  • Um IDs aus mehreren Zeilen in einer einzigen Anweisung abzurufen oder für einen zuverlässigen ID-Abruf auch bei Fehlern, verwenden Sie die OUTPUT-Klausel.

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

Stellungnahme:
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