sql >> Databasteknik >  >> RDS >> Sqlserver

@@IDENTITY, SCOPE_IDENTITY(), OUTPUT och andra metoder för att hämta senaste identitet

Det beror på vad du försöker göra...

@@IDENTITET

Returnerar det senaste IDENTITY-värdet som skapats på en anslutning, oavsett tabellen som producerade värdet, och oavsett omfattningen av satsen som producerade värdet.@@IDENTITY returnerar det senaste identitetsvärdet som angavs i en tabell i din nuvarande session. @@IDENTITY är begränsad till den aktuella sessionen och är inte begränsad till den aktuella omfattningen. Om du till exempel har en utlösare på en tabell som gör att en identitet skapas i en annan tabell, får du den identitet som skapades senast, även om det var utlösaren som skapade den.

SCOPE_IDENTITY()

Returnerar det senaste IDENTITY-värdet som skapats på en anslutning och av en sats i samma omfång, oavsett tabellen som producerade värdet.SCOPE_IDENTITY() liknar @@IDENTITY, men det kommer också att begränsa värdet till ditt nuvarande omfång. Med andra ord kommer det att returnera det senaste identitetsvärdet som du uttryckligen skapade, snarare än någon identitet som skapades av en utlösare eller en användardefinierad funktion.

IDENT_CURRENT()

Returnerar det senaste IDENTITY-värdet som producerats i en tabell, oavsett kopplingen och omfattningen av det påstående som producerade värdet. IDENT_CURRENT är begränsad till en specificerad tabell, men inte av anslutning eller omfattning.



  1. Hur COUNT() fungerar i SQL Server

  2. Hur man tar bort ett databaspostkonto från en profil i SQL Server (T-SQL)

  3. Hur man skapar en tabell i SQL Server med hjälp av en fråga

  4. MariaDB JSON_SET() Förklarad