SQL Серверный эквивалент для функции Oracle IDENTITY_VAL_LOCAL () - PullRequest
0 голосов
/ 17 января 2020

Я нахожусь в середине проекта, где мы переходим с Oracle на SQL Сервер.

Мне было интересно, есть ли, как говорится в названии, SQL серверный эквивалент для встроенной функции Oracle IDENTITY_VAL_LOCAL().

Оператор SQL, который я Я смотрю на это выглядит так:

SELECT IDENTITY_VAL_LOCAL() FROM TABLE(VALUES 1) AS t

Любая помощь будет оценена.

С уважением

Сара

Ответы [ 2 ]

2 голосов
/ 17 января 2020

Вы можете использовать Scope_Identity () на SQL сервере. Также вы можете использовать Выходное предложение .

Вы можете посмотреть демо здесь . Здесь Scope_Identity () будет работать, когда ваша таблица содержит столбец идентификаторов. Используя это, вы получите последние значения, вставленные в столбец идентификаторов.

Используя предложение Output, вы можете получить недавно добавленные значения любого столбца, а также удаленные значения, и их можно извлечь / сохранить в переменной / таблице. также.

1 голос
/ 17 января 2020

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

SELECT IDENT_CURRENT ('Person.Address') AS Current_Identity;  
...