Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Comment puis-je INSÉRER des données dans deux tables simultanément dans SQL Server ?

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]
;