Condividi tramite


Inserimento di righe con sottoquery INSERT e SELECT

Tramite la subquery SELECT dell'istruzione INSERT è possibile inserire in una tabella i valori di una o più tabelle o viste. La subquery 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 AdventureWorks, in cui 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

L'elenco di selezione della subquery 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: