SQL Server : Insertar datos en una tabla desde otra tabla . (Copiar datos)

Un ejercicio interesante con el que me topé durante el día:

¿ Cómo insertar datos de una tabla a otra eficientemente ?

¿ Cómo insertar datos de una tabla a otra utilizando condiciones?

Podemos realizar esa tarea de 2 maneras distintas, las cuales son:

Método uno : INSERT INTO SELECT

Este método lo podemos utilizar, cuando la tabla a la que deseamos llenar con datos ya existe en nuestra base de datos.


USE AdventureWorks

GO
----Creando tabla de prueba
CREATE TABLE TestTable (FirstName VARCHAR(100), LastName VARCHAR(100))
----INSERT INTO TestTable usando SELECT
INSERT INTO TestTable (FirstName, LastName)
SELECT FirstName, LastName
FROM Person.Contact
WHERE EmailPromotion = 2
----Verificamos si se insertaron los datos
SELECT FirstName, LastName
FROM TestTable
----Elimiar la tabla de la base de datos
DROP TABLE TestTable
GO

 

La segunda forma la podemos utilizar cuando la tabla a la que deseamos pasar los datos, aún no está definida en nuestra base de datos.


<code>----Creando una nueva tabla e insertando datos en la misma, usando SELECT
 SELECT FirstName, LastName
 INTO TestTable
 FROM Person.Contact
 WHERE EmailPromotion = 2
 ----Verificamos los datos
 SELECT FirstName, LastName
 FROM TestTable
 ----Borramos la tabla
 DROP TABLE TestTable
 GO</code>

Cabe resaltar, que los tipos de datos deben de ser los mismos, de igual longitud en ambas tablas o mayor longitud (en la tabla de origen) .

Saludos!