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 BusinessEntity 1540.
USE AdventureWorks2008R2;
GO
UPDATE Production.Product
SET ListPrice = ListPrice * 2
WHERE ProductID IN
(SELECT ProductID
FROM Purchasing.ProductVendor
WHERE BusinessEntityID = 1540);
GO
Aqui é uma instrução UPDATE equivalente usando uma junção:
USE AdventureWorks2008R2;
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 BusinessEntityID = 1540;
GO
Consulte também