sql >> Databasteknik >  >> RDS >> Sqlserver

Hur kan jag INFOGA data i två tabeller samtidigt i SQL Server?

Prova detta:

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

UPPDATERING: Re:

Denis - det här verkar vara väldigt nära det jag vill göra, men du kanske kan fixa följande SQL-sats åt mig? I grund och botten representerar [data] i [tabell1] och [data] i [tabell2] två olika/distinkta kolumner från [extern_tabell]. Uttalandet du postade ovan fungerar bara när du vill att kolumnerna [data] ska vara desamma.

INSERT INTO [table1] ([data]) 
OUTPUT [inserted].[id], [external_table].[col2] 
INTO [table2] SELECT [col1] 
FROM [external_table] 

Det är omöjligt att mata ut externa kolumner i en insert uttalande, så jag tror att du kan göra något sånt här

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


  1. Fristående MySQL-server

  2. Kan en främmande nyckel vara NULL och/eller dupliceras?

  3. Entitetsramverk PostgreSQL

  4. Importera "xml" till SQL Server