Prova questo:
insert into [table] ([data])
output inserted.id, inserted.data into table2
select [data] from [external_table]
AGGIORNAMENTO: Ri:
Denis - questo sembra molto vicino a quello che voglio fare, ma forse potresti correggere la seguente istruzione SQL per me? Fondamentalmente i [data] in [table1] e i [data] in [table2] rappresentano due colonne diverse/distinte da [external_table]. La dichiarazione che hai pubblicato sopra funziona solo quando vuoi che le colonne [dati] siano le stesse.
INSERT INTO [table1] ([data])
OUTPUT [inserted].[id], [external_table].[col2]
INTO [table2] SELECT [col1]
FROM [external_table]
È impossibile generare colonne esterne in un insert
dichiarazione, quindi penso che potresti fare qualcosa del genere
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]
;