2011-12-19 13 views

Respuesta

41

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

El insert into table1 select * from table2 solo inserta los valores de la tabla 2 en la tabla1.

+2

No conocía el error que generaría la consulta-1 si la tabla existía. Muchas gracias ! –

7

la primera de ellas (SELECT INTO) va a crear y poblar una nueva tabla de la segunda (INSERT... SELECT) inserta en una tabla existente.

En versiones de SQL Server anteriores a 2008, la primera se podía registrar mínimamente y la segunda no, pero this is no longer true.

3

En consulta2, la mesa table1necesidad existe antes de ejecutar el comando

En consulta1, table1 se crearán o se produce un error si ya existe

4
select * into table1 from table2 where 1=1 

La consulta anterior requiere que la mesa NO EXISTE. No necesita especificar 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.

1
INSERT INTO TABLE_A SELECT * FROM TABLE_B 

es una sentencia de uso común, que se utiliza para insertar valores de una tabla en otra tabla. Las columnas seleccionadas también pueden insertarse usando esto.

SELECT * INTO TABLE_A FROM TABLE_B 

creará un nuevo TABLE_A poblada con valores de TABLE_B

Cuestiones relacionadas