Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Как мога да вмъкна данни в две таблици едновременно в SQL Server?

Опитайте това:

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

АКТУАЛИЗИРАНЕ: Re:

Денис - това изглежда много близко до това, което искам да направя, но може би бихте могли да коригирате следния SQL израз вместо мен? По принцип [данните] в [таблица1] и [данните] в [таблица2] представляват две различни/различими колони от [external_table]. Изявлението, което публикувахте по-горе, работи само когато искате колоните [data] да са еднакви.

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

Невъзможно е да се изведат външни колони в insert изявление, така че мисля, че бихте могли да направите нещо подобно

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. Връщане на съхранени процедури и функции в база данни на SQL Server:РУТИНИ (T-SQL примери)

  2. Внедряване на релация едно към нула или едно в SQL Server

  3. Защо има пропуски в стойностите на моята колона IDENTITY?

  4. Драйверът Go with SQL Server не може да се свърже успешно, неуспешно влизане

  5. MSSQL Редовен израз