Compartir a través de


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