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 № 1DECLARE @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