UPDATE, DELETE 및 INSERT 문의 하위 쿼리

UPDATE, DELETE, INSERT 및 SELECT DML(데이터 조작 언어) 문에 하위 쿼리가 중첩될 수 있습니다.

다음 예에서는 Production.Product 테이블의 ListPrice 열 값을 두 배로 만듭니다. WHERE 절의 하위 쿼리는 Product 테이블에서 업데이트되는 행을 VendorID 51이 제공하는 행으로만 제한하여 Purchasing.ProductVendor 테이블을 참조합니다.

USE AdventureWorks;
GO 
UPDATE Production.Product
SET ListPrice = ListPrice * 2
WHERE ProductID IN
    (SELECT ProductID 
     FROM Purchasing.ProductVendor
     WHERE VendorID = 51);
GO

다음은 조인을 사용하여 동일한 기능을 수행하는 UPDATE 문입니다.

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