Share via


Inserimento di righe con sottoquery INSERT e SELECT

Tramite la sottoquery SELECT dell'istruzione INSERT è possibile inserire in una tabella i valori di una o più tabelle o viste. La sottoquery SELECT consente inoltre di inserire più righe contemporaneamente.

Nell'esempio seguente, l'istruzione INSERT inserisce in una tabella separata alcuni dei dati delle righe contenute nella tabella Sales.SalesReason del database AdventureWorks2008R2, in cui SalesReason è Marketing.

USE AdventureWorks2008R2;
GO
CREATE TABLE MySalesReason (
    SalesReasonID int NOT NULL,
    Name nvarchar(50),
    ModifiedDate datetime);
GO
INSERT INTO MySalesReason
    SELECT SalesReasonID, Name, ModifiedDate
    FROM AdventureWorks2008R2.Sales.SalesReason
    WHERE ReasonType = N'Marketing';
GO
SELECT SalesReasonID, Name, ModifiedDate 
FROM MySalesReason;
GO

L'elenco di selezione della sottoquery deve corrispondere all'elenco di colonne dell'istruzione INSERT. Se l'elenco di colonne non è stato specificato, l'elenco di selezione deve corrispondere alle colonne della tabella o vista in cui viene eseguito l'inserimento.

L'istruzione INSERT...SELECT consente inoltre di inserire i dati da un'origine esterna a SQL Server. Nell'ambito dell'istruzione INSERT, SELECT può essere utilizzata ai fini descritti di seguito: