Heim > Datenbank > MySQL-Tutorial > Wie rufe ich den letzten Identitätswert in SQL Server ab?

Wie rufe ich den letzten Identitätswert in SQL Server ab?

Barbara Streisand
Freigeben: 2024-12-29 17:48:14
Original
723 Leute haben es durchsucht

How to Retrieve the Last Identity Value in SQL Server?

Alternative Methoden zum Abrufen der letzten Identitätswerte: Ein umfassender Leitfaden

Bei der Datenbankprogrammierung ist das Abrufen des Werts eines Primärschlüssel-Identitätsfelds nach einem Einfügevorgang von entscheidender Bedeutung. Dieser Artikel untersucht verschiedene Methoden zu diesem Zweck und gibt Einblicke in deren Funktionalität und Eignung für verschiedene Szenarien.

@@IDENTITY

@@IDENTITY ruft unabhängig davon den zuletzt in der aktuellen Sitzung generierten Identitätswert ab der mit der Identität verknüpften Tabelle.

declare @t table (
    id int identity primary key,
    somecol datetime default getdate()
)
insert into @t default values

select @@IDENTITY --returns 1
Nach dem Login kopieren

Der Nachteil von @@IDENTITY besteht darin, dass es nicht an den Bereich gebunden ist. Daher kann es den letzten Identitätswert zurückgeben, der von jeder Anweisung in der Sitzung generiert wurde, einschließlich derjenigen außerhalb der aktuellen Transaktion.

SCOPE_IDENTITY()

SCOPE_IDENTITY() ruft den letzten innerhalb der generierten Identitätswert ab aktueller Bereich, der auf die Anweisung und Transaktion beschränkt ist, die ihn erzeugt hat.

select SCOPE_IDENTITY() --returns 1
Nach dem Login kopieren

SCOPE_IDENTITY() ist eine präzisere Methode im Vergleich zu @@IDENTITY stellt sicher, dass der zurückgegebene Identitätswert spezifisch für den aktuellen Bereich ist.

OUTPUT

Durch die Verwendung der OUTPUT-Klausel mit einer Einfügeanweisung können Sie eine Tabelle zurückgeben, die die eingefügten Zeilen enthält, einschließlich die generierten Identitätswerte.

Create Table #Testing (  
    id int identity,  
    somedate datetime default getdate()  
)  
insert into #Testing  
output inserted.*  
default values
Nach dem Login kopieren

OUTPUT bietet eine bequeme Möglichkeit, mehrere Identitätswerte gleichzeitig innerhalb einer einzigen Transaktion abzurufen. Es ist jedoch spezifisch für die Zieltabelle und erfordert zusätzliche Tabellenerstellungs- und Bereinigungsvorgänge.

Fazit

Die Wahl der Methode zum Abrufen des letzten Identitätswerts hängt von den spezifischen Anforderungen der Anwendung ab.

  • @@IDENTITY eignet sich für Szenarien, in denen der Identitätswert jeder eingefügten Zeile in der Sitzung benötigt wird, unabhängig von der Tabelle.
  • SCOPE_IDENTITY() ist vorzuziehen, wenn der Identitätswert spezifisch für den aktuellen Bereich sein soll, um Genauigkeit bei Transaktionen sicherzustellen.
  • OUTPUT kann verwendet werden, um mehrere Identitätswerte effizient innerhalb einer kontrollierten Transaktion abzurufen .

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

Quelle:php.cn
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