Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Come posso INSERIRE i dati in due tabelle contemporaneamente in SQL Server?

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