variable tabla into ejemplo sql-server select-into

tabla - SQL Server ''select*into'' versus ''insert en..select*



select into temp table sql server (5)

Digamos que table1 y table2 ya existen, ¿hay alguna diferencia entre estas consultas?

consulta1: -

select * into table1 from table2 where 1=1

consulta2: -

insert into table1 select * from table2


El select * into table1 from table2 where 1=1 crea table1 e inserta los valores de table2 en ellos. Por lo tanto, si la tabla ya está creada, esa declaración daría un error.

La insert into table1 select * from table2 solo inserta los valores de table2 en table1.


El primero ( SELECT INTO ) creará y completará una nueva tabla, el segundo ( INSERT... SELECT ) se inserta en una tabla existente.

En las versiones de SQL Server anteriores a 2008, la primera podría registrarse mínimamente y la segunda no, pero esto ya no es cierto .


En query2, la tabla table1 debe existir antes de ejecutar el comando

En query1, se creará table1 o se generará un error si ya existe


INSERT INTO TABLE_A SELECT * FROM TABLE_B

Es una oración de uso común, que se utiliza para insertar valores de una tabla en otra tabla. Las columnas seleccionadas también se pueden insertar utilizando esto.

SELECT * INTO TABLE_A FROM TABLE_B

Creará una nueva TABLE_A rellenada con los valores de TABLE_B


select * into table1 from table2 where 1=1

La consulta anterior requiere que la tabla NO exista. No es necesario que especifique columnas, ya que todas las columnas se crean a medida que se recuperan de la tabla de origen.

insert into table1 select * from table2

Para la consulta anterior, necesita una tabla EXISTENTE1. Las columnas en ambas tablas también deben estar exactamente en el mismo orden, de lo contrario, debe proporcionar una lista de columnas para ambas tablas.