Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Como posso INSERT dados em duas tabelas simultaneamente no SQL Server?


Tente isto:
insert into [table] ([data])
output inserted.id, inserted.data into table2
select [data] from [external_table]

ATUALIZAÇÃO: Ré:

Denis - isso parece muito próximo do que eu quero fazer, mas talvez você possa corrigir a seguinte instrução SQL para mim? Basicamente, os [dados] em [tabela1] e os [dados] em [tabela2] representam duas colunas diferentes/distintas de [tabela_externa]. A declaração que você postou acima só funciona quando você quer que as colunas [data] sejam as mesmas.
INSERT INTO [table1] ([data]) 
OUTPUT [inserted].[id], [external_table].[col2] 
INTO [table2] SELECT [col1] 
FROM [external_table] 

É impossível gerar colunas externas em um insert declaração, então eu acho que você poderia fazer algo assim
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]
;