Subconsultas nas instruções UPDATE, DELETE e INSERT
As subconsultas podem ser aninhadas nas instruções UPDATE, DELETE, INSERT e SELECT de manipulação de dados (DML).
O exemplo a seguir dobra o valor na coluna ListPrice na tabelaProduction.Product. A subconsulta na cláusula WHERE referencia a tabela Purchasing.ProductVendor para restringir as linhas atualizadas na tabela Product para somente aquelas fornecidas por VendorID 51.
USE AdventureWorks;
GO
UPDATE Production.Product
SET ListPrice = ListPrice * 2
WHERE ProductID IN
(SELECT ProductID
FROM Purchasing.ProductVendor
WHERE VendorID = 51);
GO
Aqui é uma instrução UPDATE equivalente usando uma junção:
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
Consulte também