sql >> Database >  >> RDS >> Sqlserver

Hoe kan ik gegevens in twee tabellen tegelijk INVOEREN in SQL Server?

Probeer dit:

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

UPDATE: Re:

Denis - dit lijkt heel dicht bij wat ik wil doen, maar misschien kun je de volgende SQL-instructie voor mij oplossen? In principe vertegenwoordigen de [data] in [tabel1] en de [data] in [tabel2] twee verschillende/verschillende kolommen van [externe_tabel]. De verklaring die u hierboven hebt geplaatst, werkt alleen als u wilt dat de [data]-kolommen hetzelfde zijn.

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

Het is onmogelijk om externe kolommen uit te voeren in een insert verklaring, dus ik denk dat je zoiets zou kunnen doen

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. Zijn PostgreSQL-functies transactioneel?

  2. Hoe Oracle-schemagrootte weer te geven met SQL-query?

  3. Boomitem vullen met recordgroep in Oracle-formulieren

  4. SQL LIKE en IN samen gebruiken