Insertar filas mediante subconsultas INSERT y SELECT
La subconsulta SELECT de la instrucción INSERT se puede utilizar para agregar valores a una tabla de una o más tablas o vistas. Además, utilizar una subconsulta SELECT permite insertar más de una fila al mismo tiempo.
En el siguiente ejemplo, la instrucción INSERT
inserta en una tabla independiente algunos de los datos de todas las filas de la tabla Sales.SalesReason
en AdventureWorks
cuyo SalesReason
es Marketing
.
USE AdventureWorks;
GO
CREATE TABLE MySalesReason (
SalesReasonID int NOT NULL,
Name nvarchar(50),
ModifiedDate datetime);
GO
INSERT INTO MySalesReason
SELECT SalesReasonID, Name, ModifiedDate
FROM AdventureWorks.Sales.SalesReason
WHERE ReasonType = N'Marketing';
GO
SELECT SalesReasonID, Name, ModifiedDate
FROM MySalesReason;
GO
La lista de selección de la subconsulta debe coincidir con la lista de columnas de la instrucción INSERT. Si no se especifica ninguna lista de columnas, la lista de selección debe coincidir con las columnas de la tabla o vista en la que se inserta.
Otro de los usos de la instrucción INSERT…SELECT es insertar datos de un origen externo a SQL Server 2005. SELECT en la instrucción INSERT se puede utilizar para lo siguiente:
- Hacer referencia a una tabla remota en un servidor vinculado mediante un nombre de cuatro partes. Para obtener más información, vea Identificar un origen de datos con un nombre de servidor vinculado.
- Hacer referencia a una tabla remota al utilizar OPENROWSET. Para obtener más información, vea Identificar un origen de datos con un nombre ad hoc.
- Utilizar el conjunto de resultados de una consulta ejecutada en un servidor remoto. Para obtener más información, vea Usar consultas de paso a través como tablas.
Vea también
Conceptos
Agregar filas mediante INSERT y SELECT
Insertar filas mediante INSERT y VALUES
Limitar el número de filas insertadas mediante TOP
Insertar filas mediante SELECT INTO