Как получить последний столбец идентификатора с запросом выбора в SQL Server?

Я новичок в SQL Server и создал простую таблицу, которая имеет id bigint identity(1,1) колонка. В моей хранимой процедуре я использую этот запрос к этой таблице:

select *
from TABLEA
where id > @id

Я хочу вернуть последнее значение столбца id с сохраненной процедурой с этой строкой:

SET  @ResultValue = latest id column

Как я могу написать это? Благодарю.

2 ответа

Решение

Если вы хотите, чтобы последнее значение идентификатора было сгенерировано, независимо от того, когда и где оно было сгенерировано, вы можете использовать IDENT_CURRENT:

SELECT @id=IDENT_CURRENT('TABLEA')

Если вы хотите, чтобы последний идентификатор был создан внутри области вашей хранимой процедуры, используйте SCOPE_IDENTITY, но это вернет последний идентификатор в области в любой таблице, поэтому, если вы сгенерировали идентификатор в таблице A, то в таблице B вы не сможете получить идентификатор таблицы A таким образом:

SELECT @id=SCOPE_IDENTITY('TABLEA')

Вы можете получить максимальное значение столбца следующим образом:

SET @ResultValue = IDENT_CURRENT('TABLEA')

Или, если вы просто хотите получить самые последние значения, которые вы только что добавили в этот пакет запросов, вы можете использовать @@IDENTITY и / или SCOPE_IDENTITY():

SET @ResultValue = SCOPE_IDENTITY()
Другие вопросы по тегам