/ / Wie rufen Sie die neuen Schlüssel aus einer INSERT INTO SELECT FROM-Abfrage ab? - SQL, SQL-Server, Tsql

Wie rufen Sie die neuen Schlüssel aus einer INSERT INTO SELECT FROM-Abfrage ab? - SQL, SQL-Server, Tsql

Gibt es eine Möglichkeit, alle Schlüssel der neu eingefügten Datensätze abzurufen, wenn Sie eine INSERT INTO ... SELECT FROM-Abfrage verwenden?

Antworten:

5 für die Antwort № 1
DECLARE @MyVar TABLE ( ID int )

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

SELECT  * FROM    @MyVar

3 für die Antwort № 2

Benutzen die OUTPUT-Klausel zu fange sie ein (SQL Server 2005 und höher).


0 für die Antwort № 3

Einige Datenbanken unterstützen das INSERT INTO ... SELECT ... RETURNING ... Syntax. Da Sie TSQL verwenden, glaube ich, ist die Syntax dafür:

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

Es gibt ein PDF zum Thema: Returning.pdf