Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

@@IDENTITY, SCOPE_IDENTITY(), OUTPUT и други методи за извличане на последната самоличност

Зависи какво се опитваш да направиш...

@@IDENTITY

Връща последната стойност на IDENTITY, произведена за връзка, независимо от таблицата, която е произвела стойността, и независимо от обхвата на израза, който е произвел стойността. @@IDENTITY ще върне последната стойност на идентичност, въведена в таблица във вашата текуща сесия. @@IDENTITY е ограничен до текущата сесия и не е ограничен до текущия обхват. Например, ако имате задействане в таблица, което причинява създаването на идентичност в друга таблица, вие ще получите самоличността, която е създадена последна, дори ако това е тригерът, който я е създал.

SCOPE_IDENTITY()

Връща последната стойност на IDENTITY, произведена за връзка и от израз в същия обхват, независимо от таблицата, която е произвела стойността.SCOPE_IDENTITY() е подобна на @@IDENTITY, но също така ще ограничи стойността до текущия ви обхват. С други думи, той ще върне последната стойност на самоличността, която сте създали изрично, а не каквато и да е самоличност, създадена от тригер или дефинирана от потребителя функция.

IDENT_CURRENT()

Връща последната стойност на IDENTITY, произведена в таблица, независимо от връзката и обхвата на израза, който е произвел стойността. IDENT_CURRENT е ограничен до определена таблица, но не чрез връзка или обхват.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да върнете Unicode стойността за даден символ в SQL Server – UNICODE()

  2. Как да присвоя резултат от exec на sql променлива?

  3. Sql Server задейства вмъкване на стойности от нов ред в друга таблица

  4. Защо инструментите за наблюдение на облачни бази данни за SQL Server са ценни

  5. Планирана поддръжка на 24/7 IS база данни в MS SQL Server