SQL Server - Возвращаемое значение после INSERT

Я пытаюсь вернуть ключ-значение после оператора INSERT. Пример: У меня есть таблица с именем и идентификатором атрибутов. id - это сгенерированное значение.

    INSERT INTO table (name) VALUES('bob');

Теперь я хочу вернуть идентификатор на том же этапе. Как это сделать?

Мы используем Microsoft SQL Server 2008.

279
задан melbic 27 October 2011 в 03:46
поделиться

1 ответ

Существует много способов выйти после того, как вставляют

, Когда Вы вставляете данные в таблицу, можно использовать ВЫХОДНОЙ пункт для возврата копии данных that’s вставленный в таблицу. ВЫХОДНОЙ пункт принимает две канонических формы: ВЫВОД и ВЫВОД В. Используйте ВЫХОДНУЮ форму, если Вы хотите возвратить данные вызывающему приложению. Используйте ВЫВОД В форму, если Вы хотите возвратить данные таблице или табличной переменной.

DECLARE @MyTableVar TABLE (id INT,NAME NVARCHAR(50));

INSERT INTO tableName
(
  NAME,....
)OUTPUT INSERTED.id,INSERTED.Name INTO @MyTableVar
VALUES
(
   'test',...
)

IDENT_CURRENT: Это возвращает последние идентификационные данные, созданные для конкретной таблицы или представления на любой сессии.

SELECT IDENT_CURRENT('tableName') AS [IDENT_CURRENT]

SCOPE_IDENTITY: Это возвращает последние идентификационные данные из той же сессии и того же объема. Объемом является хранимая процедура/, инициировали и т.д.

SELECT SCOPE_IDENTITY() AS [SCOPE_IDENTITY];  

@@ ИДЕНТИФИКАЦИОННЫЕ ДАННЫЕ : Это возвращает последние идентификационные данные из той же сессии.

SELECT @@IDENTITY AS [@@IDENTITY];
1
ответ дан 23 November 2019 в 02:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: