Insert from select en SQL Server
Insert from select en SQL Server Carlos Mon, 10/10/2016 - 19:38
Insertar registros con una select
Para hacer un insert para añadir registros a una tabla a partir de una sentencia Select en SQL Server se puede hacer algo tan simple como esto:
insert into mi_tabla_destino select * from mi_tabla_origen
Insertar registros con nombre de campo o diferente número con una select
Eso siempre que los campos de ambas tablas sean iguales. Si no coinciden exactamente, en número, nombre, etc., en lugar de utilizar el * hay que indicar el nombre de los campos que vamos a utilizar en la tabla origen y la tabla destino:
insert into mi_tabla_destino (campo_destino1, campo_destino2, campo_destino3) select (campo_origen1, campo_origen2, campo_origen3)
Crear una nueva tabla a partir de una select (CTAS)
Esto si la tabla ya existe, si lo que se quiere es crear una nueva tabla a partir de los datos de una select sobre otras tablas, algo conocido como CTAS (Create As Select), la sintaxis de la sentencia cambia un poco:
SELECT * INTO dbo.Destination FROM dbo.Source
SELECT * INTO dbo.Destination FROM dbo.Source
SELECT * INTO dbo.Destination FROM dbo.Source
SELECT * INTO dbo.Destination FROM dbo.Source
SELECT * INTO dbo.Destination FROM dbo.Source
select * into mi_nueva_tabla_destino from mi_tabla_origen