РЕДАКТИРОВАТЬ (очень важно)
Следует отметить, что этот метод может использоваться для прогнозирования следующего идентификатора, но не гарантирует это значение. Причина этого заключается в том, что @marc_s упоминается в комментариях, что между временем, когда вы запросили значение, и временем, когда вы его используете, в эту таблицу могла бы быть вставлена другая транзакция, что сделало бы предположение о том, что полученное значение пусто и недействительно.
Как уже упоминалось, если ваша реализация основана на таком допущении, вы допустили некоторые ошибки проектирования и должны рассматривать переработку этого решения в качестве первого приоритета.
С IDENT_CURRENT (Transact-SQL)
Возвращает последнее значение идентификатора, созданное для указанной таблицы или
Посмотреть. Последнее сгенерированное значение идентификатора может быть для любого сеанса и любого
Объем.
Посмотрите на следующий пример
CREATE TABLE #Table (
ID INT IDENTITY(1,1),
Val INT
)
INSERT INTO #Table SELECT 1
INSERT INTO #Table SELECT 2
INSERT INTO #Table SELECT 3
SELECT * FROM #Table
DELETE FROM #Table WHERE ID >= 2
SELECT * FROM #Table
SELECT IDENT_CURRENT('#Table')
DROP TABLE #Table