Heim > Datenbank > MySQL-Tutorial > Welche SQL Server-Methode zum Abrufen von Identitätswerten (@@IDENTITY, IDENT_CURRENT, SCOPE_IDENTITY, OUTPUT-Klausel) sollte ich verwenden?

Welche SQL Server-Methode zum Abrufen von Identitätswerten (@@IDENTITY, IDENT_CURRENT, SCOPE_IDENTITY, OUTPUT-Klausel) sollte ich verwenden?

Linda Hamilton
Freigeben: 2025-01-23 08:56:12
Original
232 Leute haben es durchsucht

Which SQL Server Identity Value Retrieval Method (@@IDENTITY, IDENT_CURRENT, SCOPE_IDENTITY, OUTPUT Clause) Should I Use?

SQL Server Identity Value Retrieval: Ein praktischer Leitfaden

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!

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