Inserimento di righe con subquery 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 2005. Nell'ambito dell'istruzione INSERT, SELECT può essere utilizzata ai fini descritti di seguito:
- Fare riferimento a una tabella remota in un server collegato utilizzando un nome composto da quattro parti. Per ulteriori informazioni, vedere Identificazione di un'origine dei dati tramite il nome di un server collegato.
- Fare riferimento a una tabella remota utilizzando OPENROWSET. Per ulteriori informazioni, vedere Identificazione di un'origine dei dati tramite un nome ad hoc.
- Utilizzare il set di risultati di una query eseguita in un server remoto. Per ulteriori informazioni, vedere Utilizzo di query pass-through come tabelle.
Vedere anche
Concetti
Aggiunta di righe con INSERT e SELECT
Inserimento di una riga tramite INSERT e Values
Impostazione di limiti per le righe inserite utilizzando la parola chiave TOP
Inserimento di righe con l'istruzione SELECT INTO