Вставка строк с использованием вложенных запросов INSERT и SELECT
Вложенный запрос SELECT в инструкции INSERT может использоваться для добавления значений в таблицу из одной или нескольких таблиц или представлений. Использование вложенного запроса SELECT позволяет также одновременно вставлять более одной строки.
В следующем примере инструкция INSERT
вставляет в отдельную таблицу некоторые данные из всех строк в таблице Sales.SalesReason
базы данных AdventureWorks
, для которых SalesReason
— это 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
Список выбора во вложенном запросе должен совпадать со списком столбцов в инструкции INSERT. Если список столбцов не указан, список выбора должен совпадать со столбцами в таблице или представлении, куда осуществляется вставка.
Другим вариантом использования инструкции INSERT...SELECT является вставка данных из источника, находящегося вне SQL Server 2005. Подзапрос SELECT в инструкции INSERT может использоваться для:
- Ссылки на удаленную таблицу на связанном сервере с использованием четырехчастного имени. Дополнительные сведения см. в разделе Определение источника данных по имени связанного сервера.
- Ссылки на удаленную таблицу с использованием OPENROWSET. Дополнительные сведения см. в разделе Идентификация источника данных по нерегламентированному имени.
- Использования результирующего набора запроса, выполненного на удаленном сервере. Дополнительные сведения см. в разделе Использование передаваемых запросов в качестве таблиц.
См. также
Основные понятия
Добавление строк с помощью инструкций INSERT и SELECT
Вставка строки с помощью инструкции INSERT и предложения VALUES
Ограничение количества вставленных строк с помощью предложения TOP
Добавление строк с использованием SELECT INTO