- De
@@identity
functie retourneert de laatste identiteit die in dezelfde sessie is gemaakt. - De
scope_identity()
functie retourneert de laatste identiteit die in dezelfde sessie en hetzelfde bereik is gemaakt. - De
ident_current(name)
retourneert de laatste identiteit die is gemaakt voor een specifieke tabel of weergave in een sessie. - De
identity()
functie wordt niet gebruikt om een identiteit te krijgen, het wordt gebruikt om een identiteit te creëren in eenselect...into
vraag.
De sessie is de databaseverbinding. Het bereik is de huidige query of de huidige opgeslagen procedure.
Een situatie waarin de scope_identity()
en de @@identity
functies verschillen, is als je een trigger op tafel hebt. Als u een query hebt die een record invoegt, waardoor de trigger ergens een ander record invoegt, wordt de scope_identity()
functie retourneert de identiteit die door de query is gemaakt, terwijl de @@identity
functie retourneert de identiteit die door de trigger is gemaakt.
Dus normaal gesproken zou je de scope_identity()
. gebruiken functie.