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

@@IDENTITY, SCOPE_IDENTITY(), OUTPUT a další metody získání poslední identity

Záleží na tom, co se snažíte udělat...

@@IDENTITY

Vrátí poslední hodnotu IDENTITY vytvořenou při připojení bez ohledu na tabulku, která hodnotu vytvořila, a bez ohledu na rozsah příkazu, který hodnotu vytvořil. @IDENTITY vrátí poslední hodnotu identity zadanou do tabulky ve vaší aktuální relaci. @@IDENTITY je omezena na aktuální relaci a není omezena na aktuální rozsah. Pokud máte například v tabulce spouštěč, který způsobuje vytvoření identity v jiné tabulce, získáte identitu, která byla vytvořena jako poslední, i když to byl spouštěč, který ji vytvořil.

SCOPE_IDENTITY()

Vrátí poslední hodnotu IDENTITY vytvořenou při připojení a příkazem ve stejném rozsahu, bez ohledu na tabulku, která hodnotu vytvořila. SCOPE_IDENTITY() je podobná @@IDENTITY, ale také omezí hodnotu na váš aktuální rozsah. Jinými slovy, vrátí poslední hodnotu identity, kterou jste explicitně vytvořili, spíše než jakoukoli identitu, která byla vytvořena spouštěčem nebo uživatelem definovanou funkcí.

IDENT_CURRENT()

Vrátí poslední hodnotu IDENTITY vytvořenou v tabulce bez ohledu na připojení a rozsah příkazu, který hodnotu vytvořil. IDENT_CURRENT je omezeno na zadanou tabulku, ale ne podle připojení nebo rozsahu.



  1. Jak získat plovoucí výsledek dělením dvou celočíselných hodnot pomocí T-SQL?

  2. Jak nastavit hodnotu pole složené proměnné pomocí dynamického SQL

  3. java.util.MissingFormatArgumentException:Specifikátor formátu:s

  4. zadáním správného uživatelského jména a hesla získáte ORA-01017:neplatné uživatelské jméno/heslo; přihlášení odepřeno