Как вы получаете новые ключи из запроса INSERT INTO SELECT FROM? - PullRequest
2 голосов
/ 08 декабря 2009

Есть ли способ получить все ключи вновь вставленных записей при использовании запроса INSERT INTO ... SELECT FROM?

Ответы [ 3 ]

5 голосов
/ 08 декабря 2009
DECLARE @MyVar TABLE ( ID int )

INSERT  INTO dbo.TargetTable
    OUTPUT  INSERTED.ID INTO @MyVar
SELECT * FROM    dbo.SourceTable

SELECT  * FROM    @MyVar
3 голосов
/ 08 декабря 2009

Используйте предложение OUTPUT до захватывать их (SQL Server 2005 и более поздние версии).

0 голосов
/ 08 декабря 2009

Некоторые базы данных поддерживают синтаксис INSERT INTO ... SELECT ... RETURNING .... Поскольку вы используете TSQL, я считаю, что синтаксис для этого:

INSERT INTO table (fields...)
OUTPUT outputfields...
SELECT ...

Есть PDF по этому вопросу: Returning.pdf

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...