Freigeben über


Einfügen von Reihen mithilfe der Unterabfragen INSERT und SELECT

Mit einer SELECT-Unterabfrage in der INSERT-Anweisung fügen Sie einer Tabelle Werte hinzu, die aus einer oder mehreren anderen Tabellen oder Sichten stammen. Das Verwenden einer SELECT-Unterabfrage ermöglicht außerdem das gleichzeitige Einfügen mehrerer Zeilen.

Im folgenden Beispiel fügt die INSERT-Anweisung einige der Daten aus allen Zeilen der Sales.SalesReason-Tabelle in AdventureWorks, in denen SalesReason als Marketing angegeben ist, in eine separate Tabelle ein:

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

Die Auswahlliste der Unterabfrage muss mit der Spaltenliste der INSERT-Anweisung übereinstimmen. Wenn keine Spaltenliste angegeben ist, muss die Auswahlliste mit den Spalten in der Tabelle oder Sicht übereinstimmen, in die Daten eingefügt werden.

Eine weitere Verwendungsmöglichkeit der INSERT...SELECT-Anweisung ist das Einfügen von Daten aus einer Quelle außerhalb von SQL Server 2005. Die SELECT- kann in der INSERT-Anweisung wie folgt verwendet werden:

Siehe auch

Konzepte

Hinzufügen von Zeilen mithilfe von INSERT und SELECT
Einfügen einer Zeile durch Verwenden von INSERT mit Werten
Beschränken einzufügender Zeilen mithilfe von TOP
Einfügen von Zeilen mit SELECT INTO

Hilfe und Informationen

Informationsquellen für SQL Server 2005