Как получить последний столбец идентификатора с запросом выбора в 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()