问题描述:

Is there a way to retrieve all the keys of the newly inserted records when using an INSERT INTO ... SELECT FROM query?

网友答案:
DECLARE @MyVar TABLE ( ID int )

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

SELECT  * FROM    @MyVar
网友答案:

Use the OUTPUT clause to capture them (SQL Server 2005 and up).

网友答案:

Some databases support the INSERT INTO ... SELECT ... RETURNING ... syntax. Since you are using TSQL, I believe the syntax for that is:

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

There's a PDF on the issue: Returning.pdf

相关阅读:
Top