Spróbuj tego:
insert into [table] ([data])
output inserted.id, inserted.data into table2
select [data] from [external_table]
AKTUALIZACJA: Odp.:
Denis — wydaje się, że jest to bardzo zbliżone do tego, co chcę zrobić, ale może mógłbyś naprawić dla mnie następującą instrukcję SQL? Zasadniczo [dane] w [tabela1] i [dane] w [tabela2] reprezentują dwie różne/różne kolumny z [tabela_zewnętrzna]. Oświadczenie, które opublikowałeś powyżej, działa tylko wtedy, gdy chcesz, aby kolumny [dane] były takie same.
INSERT INTO [table1] ([data])
OUTPUT [inserted].[id], [external_table].[col2]
INTO [table2] SELECT [col1]
FROM [external_table]
Nie można wyprowadzić zewnętrznych kolumn w insert
oświadczenie, więc myślę, że mógłbyś zrobić coś takiego
merge into [table1] as t
using [external_table] as s
on 1=0 --modify this predicate as necessary
when not matched then insert (data)
values (s.[col1])
output inserted.id, s.[col2] into [table2]
;