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 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
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() 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
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.
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
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.
Die Wahl der Methode zum Abrufen des letzten Identitätswerts hängt von den spezifischen Anforderungen der Anwendung ab.
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!