sql >> Databáze >  >> RDS >> Sqlserver

Jaký je rozdíl mezi Scope_Identity(), Identity(), @@Identity a Ident_Current()?

  • @@identity funkce vrací poslední identitu vytvořenou ve stejné relaci.
  • scope_identity() funkce vrací poslední identitu vytvořenou ve stejné relaci a stejném rozsahu.
  • ident_current(name) vrátí poslední identitu vytvořenou pro konkrétní tabulku nebo pohled v jakékoli relaci.
  • identity() funkce se nepoužívá k získání identity, používá se k vytvoření identity v select...into dotaz.

Relace je připojení k databázi. Rozsah je aktuální dotaz nebo aktuální uložená procedura.

Situace, kdy scope_identity() a @@identity funkce se liší, pokud máte na stole spoušť. Pokud máte dotaz, který vkládá záznam a způsobí, že spouštěč někam vloží jiný záznam, scope_identity() funkce vrátí identitu vytvořenou dotazem, zatímco @@identity funkce vrátí identitu vytvořenou spouštěčem.

Normálně byste tedy použili scope_identity() funkce.



  1. POSTGRESQL cizí klíč odkazující na primární klíče dvou různých tabulek

  2. Android with Room - Jak nastavit cizí klíč s možnou hodnotou Null

  3. Funkce NUMTODSINTERVAL() v Oracle

  4. Databázové tipy pro začátečníky