sql >> Database >  >> RDS >> Sqlserver

@@IDENTITY, SCOPE_IDENTITY(), OUTPUT en andere methoden om de laatste identiteit op te halen

Het hangt af van wat je probeert te doen...

@@IDENTITY

Retourneert de laatste IDENTITY-waarde die is geproduceerd op een verbinding, ongeacht de tabel die de waarde heeft geproduceerd en ongeacht het bereik van de instructie die de waarde heeft geproduceerd.@@IDENTITY retourneert de laatste identiteitswaarde die in uw huidige sessie in een tabel is ingevoerd. @@IDENTITY is beperkt tot de huidige sessie en is niet beperkt tot het huidige bereik. Als u bijvoorbeeld een trigger op een tabel hebt die ervoor zorgt dat een identiteit in een andere tabel wordt gemaakt, krijgt u de identiteit die het laatst is gemaakt, zelfs als het de trigger was die deze heeft gemaakt.

SCOPE_IDENTITY()

Retourneert de laatste IDENTITY-waarde die is geproduceerd op een verbinding en door een instructie in hetzelfde bereik, ongeacht de tabel die de waarde heeft geproduceerd.SCOPE_IDENTITY() is vergelijkbaar met @@IDENTITY, maar het beperkt de waarde ook tot uw huidige bereik. Met andere woorden, het retourneert de laatste identiteitswaarde die u expliciet hebt gemaakt, in plaats van een identiteit die is gemaakt door een trigger of een door de gebruiker gedefinieerde functie.

IDENT_CURRENT()

Retourneert de laatste IDENTITY-waarde die in een tabel is geproduceerd, ongeacht de verbinding en het bereik van de instructie die de waarde heeft geproduceerd. IDENT_CURRENT is beperkt tot een opgegeven tabel, maar niet per verbinding of bereik.



  1. Wat is een één-op-één relatie in een database?

  2. Update records in tabel vanuit CTE

  3. Tablix:koptekstrijen herhalen op elke pagina werkt niet - Report Builder 3.0

  4. Django:Tafel bestaat niet