How do you retrieve the new keys from an INSERT INTO SELECT FROM query?

后端 未结 3 638
梦毁少年i
梦毁少年i 2021-01-15 01:18

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

相关标签:
3条回答
  • 2021-01-15 01:32

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

    0 讨论(0)
  • 2021-01-15 01:45
    DECLARE @MyVar TABLE ( ID int )
    
    INSERT  INTO dbo.TargetTable
        OUTPUT  INSERTED.ID INTO @MyVar
    SELECT * FROM    dbo.SourceTable
    
    SELECT  * FROM    @MyVar
    
    0 讨论(0)
  • 2021-01-15 01:50

    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

    0 讨论(0)
提交回复
热议问题