Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jak mogę WSTAWIĆ dane do dwóch tabel jednocześnie w SQL Server?

Spróbuj tego:

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

AKTUALIZACJA: Odp.:

Denis — wydaje się, że jest to bardzo zbliżone do tego, co chcę zrobić, ale może mógłbyś naprawić dla mnie następującą instrukcję SQL? Zasadniczo [dane] w [tabela1] i [dane] w [tabela2] reprezentują dwie różne/różne kolumny z [tabela_zewnętrzna]. Oświadczenie, które opublikowałeś powyżej, działa tylko wtedy, gdy chcesz, aby kolumny [dane] były takie same.

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

Nie można wyprowadzić zewnętrznych kolumn w insert oświadczenie, więc myślę, że mógłbyś zrobić coś takiego

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Dlaczego dostrajanie wydajności SQL jest najważniejszą umiejętnością zarządzania bazą danych?

  2. Dynamiczne maskowanie danych w SQL Server dla zaawansowanych użytkowników

  3. Wiele instrukcji INSERT vs. pojedyncza INSERT z wieloma VALUES

  4. Przyrost tożsamości skacze w bazie danych SQL Server

  5. Zastąp pierwsze wystąpienie podciągu w ciągu w SQL