sql >> Databáze >  >> RDS >> Sqlserver

Jak mohu INSERT data do dvou tabulek současně v SQL Server?

Zkuste toto:

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

AKTUALIZACE: Re:

Denis – zdá se to velmi blízko tomu, co chci udělat, ale možná byste mi mohli opravit následující příkaz SQL? [data] v [tabulce1] a [data] v [tabulce2] v podstatě představují dva různé/odlišné sloupce od [externí_tabulka]. Výpis, který jste zveřejnili výše, funguje pouze v případě, že chcete, aby byly sloupce [data] stejné.

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

Výstup externích sloupců v insert není možný prohlášení, takže si myslím, že byste mohli udělat něco takového

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. Zde jsou tři důvody, proč můžete ve své instanci SQL zaznamenat špičkovou aktivitu

  2. Jsou dotazy typu SELECT jediným typem, který lze vnořit?

  3. čárkami oddělený seznam jako jeden řetězec, T-SQL

  4. Jaká je maximální velikost dotazu pro mysql?