SQL Server bietet mehrere Möglichkeiten, die Identität einer neu eingefügten Zeile abzurufen. Jede Methode hat ihre Stärken und Schwächen, sodass die Wahl von Ihren spezifischen Bedürfnissen abhängt. In diesem Leitfaden werden die Unterschiede zwischen @@IDENTITY
, IDENT_CURRENT
, SCOPE_IDENTITY
und der OUTPUT
-Klausel erläutert.
Vergleich von @@IDENTITY
, IDENT_CURRENT
und SCOPE_IDENTITY
@@IDENTITY
: Diese Funktion gibt den letzten Identitätswert zurück, der in der aktuellen Sitzung generiert wurde, unabhängig von der Tabelle. Nützlich zum Abrufen der ID aus jeder Tabelle innerhalb der Sitzung, aber seien Sie vorsichtig: Sie kann durch Trigger oder gleichzeitige Vorgänge beeinflusst werden.
IDENT_CURRENT
: Ruft den letzten Identitätswert ab, der für eine spezifische Tabelle generiert wurde, unabhängig von der Sitzung oder dem Bereich. Ideal, wenn Sie die ID für eine bestimmte Tabelle benötigen, auch wenn Sie die Zeile nicht direkt eingefügt haben.
SCOPE_IDENTITY
: Gibt den letzten Identitätswert zurück, der innerhalb der aktuellen Sitzung und des aktuellen Bereichs generiert wurde. Im Allgemeinen die beste Wahl zum Abrufen der ID einer kürzlich eingefügten Zeile, da sie von anderen gleichzeitigen Prozessen innerhalb derselben Anweisung isoliert ist.
Die OUTPUT
-Klausel: Eine leistungsstarke Alternative
Die OUTPUT
-Klausel bietet eine direkte Möglichkeit, über eine INSERT
-Anweisung auf eingefügte Zeilen zuzugreifen. Sie können Identitätswerte zusammen mit anderen Spaltendaten in einer Tabellenvariablen oder temporären Tabelle erfassen. Es ist zwar unkompliziert, aber etwas komplexer in der Verwendung und gibt Daten zurück, selbst wenn die Anweisung zurückgesetzt wird. Entscheidend ist, dass es vor Triggern ausgeführt wird, sodass keine vom Trigger generierten Identitätswerte abgerufen werden. Es bietet jedoch die einzige zuverlässige Möglichkeit, Identitätswerte bei Verwendung der Parallelverarbeitung zu erhalten und deren Verfügbarkeit unabhängig vom Ausführungsplan zu gewährleisten.
Das obige ist der detaillierte Inhalt vonWelche SQL Server-Methode zum Abrufen von Identitätswerten (@@IDENTITY, IDENT_CURRENT, SCOPE_IDENTITY, OUTPUT-Klausel) sollte ich verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!