С сайта я узнал следующие вещи:
SQL SERVER - @@ IDENTITY vs SCOPE_IDENTITY () vs IDENT_CURRENT - получить последнюю вставленную личность записи
25 марта 2007 года от pinaldave
ВЫБЕРИТЕ @@ IDENTITY
Он возвращает последнее значение IDENTITY, созданное для соединения, независимо от таблицы, которая произвела значение, и независимо от области действия оператора, который произвел значение.
@@ IDENTITY вернет последнее значение идентификатора, введенное в таблицу в текущем сеансе. Хотя @@ IDENTITY ограничено текущим сеансом, оно не ограничено текущей областью. Если у вас есть триггер в таблице, который вызывает создание идентификатора в другой таблице, вы получите идентификатор, который был создан последним, даже если это был триггер, который его создал.
SELECT SCOPE_IDENTITY ()
Он возвращает последнее значение IDENTITY, созданное для соединения и с помощью оператора в той же области, независимо от таблицы, которая произвела значение.
SCOPE_IDENTITY (), подобно @@ IDENTITY, вернет последнее значение идентификатора, созданное в текущем сеансе, но также ограничит его текущей областью. Другими словами, он вернет последнее значение идентификатора, которое вы явно создали, а не любое значение, созданное триггером или определенной пользователем функцией.
SELECT IDENT_CURRENT («имя таблицы»)
Он возвращает последнее значение IDENTITY, созданное в таблице, независимо от соединения, создавшего это значение, и независимо от области действия оператора, создавшего это значение.
IDENT_CURRENT не ограничен областью действия и сессией; он ограничен указанной таблицей. IDENT_CURRENT возвращает значение идентификатора, созданное для конкретной таблицы в любом сеансе и любой области.