Udostępnij za pośrednictwem


Subqueries in UPDATE, DELETE, and INSERT Statements

Podkwerendy mogą być zagnieżdżane w instrukcjach UPDATE, DELETE, INSERT i SELECT danych manipulacji (DML).

W poniższym przykładzie podwaja się wartość ListPrice kolumna w Production.Product Tabela. podkwerenda w klauzula WHERE odwołuje Purchasing.ProductVendor tabelę, aby ograniczyć wiersze zaktualizowane w Product Tabela do tylko tych, które dostarczane przez VendorID 51.

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

W tym polu jest równoważne instrukcja UPDATE, za pomocą łączyć:

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