@@identity
funktion returnerar den senast skapade identiteten i samma session.scope_identity()
funktion returnerar den senast skapade identiteten i samma session och samma omfattning.-
ident_current(name)
returnerar den senast skapade identiteten för en specifik tabell eller vy i någon session. identity()
Funktionen används inte för att få en identitet, den används för att skapa en identitet i enselect...into
fråga.
Sessionen är databasanslutningen. Omfattningen är den aktuella frågan eller den nuvarande lagrade proceduren.
En situation där scope_identity()
och @@identity
funktioner skiljer sig, är om du har en trigger på bordet. Om du har en fråga som infogar en post, vilket gör att triggern infogar en annan post någonstans, scope_identity()
funktionen returnerar identiteten som skapats av frågan, medan @@identity
funktionen returnerar identiteten som skapats av utlösaren.
Så normalt skulle du använda scope_identity()
funktion.