Insertion de lignes à l'aide des sous-requêtes INSERT et SELECT
Pour ajouter dans une table des valeurs provenant d'une ou de plusieurs autres tables ou vues, utilisez une sous-requête SELECT dans l'instruction INSERT. L'utilisation d'une sous-requête SELECT permet également d'insérer plusieurs lignes simultanément.
Dans l'exemple suivant, l'instruction INSERT
insère dans une table distincte certaines données des lignes de la table Sales.SalesReason
dans AdventureWorks
dont SalesReason
est 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
La liste de sélection de la sous-requête doit correspondre à la liste de colonnes de l'instruction INSERT. Si aucune liste de colonnes n'est spécifiée, la liste de sélection doit correspondre aux colonnes de la table ou de la vue dans laquelle elle est insérée.
Il existe une autre utilisation de l'instruction INSERT…SELECT, qui consiste à insérer des données d'une source située à l'extérieur de SQL Server 2005. La sous-requête SELECT dans l'instruction INSERT peut être utilisée pour les opérations suivantes :
- Référencer une table distante ou un serveur lié au moyen d'un nom en quatre parties. Pour plus d'informations, consultez Identification d'une source de données à l'aide d'un nom de serveur lié.
- Référencer une table distante au moyen de OPENROWSET. Pour plus d'informations, consultez Identification d'une source de données à l'aide d'un nom approprié.
- Utiliser l'ensemble de résultats d'une requête exécutée sur un serveur distant. Pour plus d'informations, consultez Utilisation de requêtes directes comme des tables.
Voir aussi
Concepts
Ajout de lignes à l'aide d'INSERT et SELECT
Insertion d’une ligne à l'aide de l’instruction INSERT et VALUES
Limitation du nombre de lignes insérées via le mot clé TOP
Insertion de lignes au moyen de l'instruction SELECT INTO