Sottoquery in istruzioni UPDATE, DELETE e INSERT
Le subquery possono essere nidificate nelle istruzioni DML UPDATE, DELETE, INSERT e SELECT.
Nell'esempio seguente il valore nella colonna ListPrice della tabella Production.Product viene raddoppiato. La subquery nella clausola WHERE fa riferimento alla tabella Purchasing.ProductVendor per limitare le righe aggiornate nella tabella Product a quelle fornite da VendorID 51.
USE AdventureWorks;
GO
UPDATE Production.Product
SET ListPrice = ListPrice * 2
WHERE ProductID IN
(SELECT ProductID
FROM Purchasing.ProductVendor
WHERE VendorID = 51);
GO
Di seguito viene riportata un'istruzione UPDATE equivalente in cui è utilizzato un join:
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
Vedere anche