Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Wie kann ich in SQL Server Daten gleichzeitig in zwei Tabellen einfügen?

Versuchen Sie Folgendes:

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

AKTUALISIERUNG: Betreff:

Denis - das scheint dem, was ich tun möchte, sehr nahe zu kommen, aber vielleicht könnten Sie die folgende SQL-Anweisung für mich korrigieren? Grundsätzlich stellen die [Daten] in [Tabelle1] und die [Daten] in [Tabelle2] zwei verschiedene/unterschiedliche Spalten von [external_table] dar. Die oben gepostete Anweisung funktioniert nur, wenn Sie möchten, dass die [Daten] -Spalten gleich sind.

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

Es ist nicht möglich, externe Spalten in einem insert auszugeben Anweisung, also denke ich, dass Sie so etwas tun könnten

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