Essayez ceci :
insert into [table] ([data])
output inserted.id, inserted.data into table2
select [data] from [external_table]
MISE À JOUR : Re :
Denis - cela semble très proche de ce que je veux faire, mais peut-être pourriez-vous me corriger l'instruction SQL suivante ? Fondamentalement, les [données] dans [table1] et les [données] dans [table2] représentent deux colonnes différentes/distinctes de [external_table]. La déclaration que vous avez publiée ci-dessus ne fonctionne que lorsque vous souhaitez que les colonnes [data] soient identiques.
INSERT INTO [table1] ([data])
OUTPUT [inserted].[id], [external_table].[col2]
INTO [table2] SELECT [col1]
FROM [external_table]
Il est impossible de sortir des colonnes externes dans un insert
déclaration, donc je pense que vous pourriez faire quelque chose comme ça
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]
;