Subconsultas en las instrucciones UPDATE, DELETE e INSERT
En las instrucciones de manipulación de datos (DML) UPDATE, DELETE, INSERT y SELECT se pueden anidar subconsultas.
En el ejemplo siguiente se duplica el valor de la columna ListPrice en la tabla Production.Product. La subconsulta de la cláusula WHERE hace referencia a la tabla Purchasing.ProductVendor para limitar las filas que se actualizan en la tabla Product únicamente a las que proporciona BusinessEntity 1540.
USE AdventureWorks2008R2;
GO
UPDATE Production.Product
SET ListPrice = ListPrice * 2
WHERE ProductID IN
(SELECT ProductID
FROM Purchasing.ProductVendor
WHERE BusinessEntityID = 1540);
GO
A continuación se muestra una instrucción UPDATE equivalente que usa una combinación:
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
Vea también