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:
@@IDENTITY
, wenn Sie die ID von einem Trigger oder einer anderen Anweisung innerhalb derselben Sitzung erhalten.SCOPE_IDENTITY()
der empfohlene Ansatz.IDENT_CURRENT('tableName')
, um die ID für eine Tabelle abzurufen, ohne dass kürzlich ein Datensatz eingefügt wurde.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!