Sous-requêtes dans les instructions UPDATE, DELETE et INSERT
Les sous-requêtes peuvent être imbriquées dans les instructions de manipulation de données (DML, Data Manipulation Language) UPDATE, DELETE, INSERT et SELECT.
L'exemple suivant double la valeur de la colonne ListPrice
dans la table Production.Product
. La sous-requête contenue dans la clause WHERE fait référence à la table Purchasing.ProductVendor
pour limiter les lignes mises à jour dans la table Product
à celles fournies par VendorID 51
uniquement.
USE AdventureWorks;
GO
UPDATE Production.Product
SET ListPrice = ListPrice * 2
WHERE ProductID IN
(SELECT ProductID
FROM Purchasing.ProductVendor
WHERE VendorID = 51);
GO
Voici une instruction UPDATE équivalente qui utilise une jointure :
USE AdventureWorks;
GO
UPDATE Production.Product
SET ListPrice = ListPrice * 2
FROM Production.Product AS p
INNER JOIN Purchasing.ProductVendor AS pv
ON p.ProductID = pv.ProductID AND pv.VendorID = 51;
GO
Voir aussi
Concepts
Autres ressources
Modification de données dans une base de données
INSERT (Transact-SQL)
UPDATE (Transact-SQL)
DELETE (Transact-SQL)
SELECT (Transact-SQL)