sql >> Base de Datos >  >> RDS >> Sqlserver

¿Cómo puedo INSERTAR datos en dos tablas simultáneamente en SQL Server?

Prueba esto:

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

ACTUALIZACIÓN: Re:

Denis:esto parece muy parecido a lo que quiero hacer, pero ¿quizás podrías arreglar la siguiente instrucción SQL para mí? Básicamente, los [datos] en [tabla1] y los [datos] en [tabla2] representan dos columnas diferentes/distintas de [tabla_externa]. La declaración que publicó anteriormente solo funciona cuando desea que las columnas [datos] sean iguales.

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

Es imposible generar columnas externas en un insert declaración, así que creo que podrías hacer algo como esto

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