/ / W jaki sposób odzyskujesz nowe klucze z zapytania INSERT INTO SELECT FROM? - sql, sql-server, tsql

Jak odzyskać nowe klucze z zapytania INSERT INTO SELECT FROM? - sql, sql-server, tsql

Czy istnieje sposób na odzyskanie wszystkich kluczy nowo wstawionych rekordów przy użyciu zapytania INSERT INTO ... SELECT FROM?

Odpowiedzi:

5 dla odpowiedzi № 1
DECLARE @MyVar TABLE ( ID int )

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

SELECT  * FROM    @MyVar

3 dla odpowiedzi № 2

Posługiwać się klauzula WYJŚCIOWA do złap ich (SQL Server 2005 i nowsze).


0 dla odpowiedzi № 3

Niektóre bazy danych obsługują INSERT INTO ... SELECT ... RETURNING ... składnia. Ponieważ używasz TSQL, uważam, że składnia to:

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

W pliku znajduje się plik PDF: Returning.pdf