Якщо ви розумієте різницю між обсягом і сеансом, зрозуміти ці методи буде дуже просто.
Дуже приємна публікація в блозі Адама Андерсона описує цю різницю:
Сесія означає поточне з'єднання, яке виконує команду.
Область застосування - це безпосередній контекст команди. Кожен виклик збереженої процедури виконується у власній області, а вкладені виклики виконуються у вкладеній області в межах процедури виклику. Аналогічно, команда SQL, виконана з програми або SSMS, виконується у власному обсязі, і якщо ця команда спрацьовує будь-які тригери, кожен тригер виконується у власному вкладеному обсязі.
Таким чином, відмінності між трьома методами пошуку ідентичності такі:
@@identity
повертає останнє значення ідентичності, згенерованого в цьому сеансі, але будь-яку область.
scope_identity()
повертає останнє значення ідентичності, згенерованого в цьому сеансі, і в цій області.
ident_current()
повертає останнє значення ідентичності, створене для певної таблиці в будь-якому сеансі та будь-якій області.