sql >> Databasteknik >  >> RDS >> Sqlserver

Vad är skillnaden mellan Scope_Identity(), Identity(), @@Identity och Ident_Current()?

  • @@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 en select...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.



  1. PostgreSQL:Hur skickar man parametrar från kommandoraden?

  2. Vad betyder <> i Oracle

  3. MariaDB Java Connector Driver Performance

  4. Hämta datum mellan olika datumintervall