Unterabfragen in den Anweisungen UPDATE, DELETE und INSERT
Unterabfragen können in den Anweisungen UPDATE, DELETE, INSERT und SELECT der Datenbearbeitungssprache (DML, Data Manipulation Language) geschachtelt werden.
Das folgende Beispiel verdoppelt den Wert in der ListPrice-Spalte in der Production.Product-Tabelle. Die Unterabfrage in der WHERE-Klausel verweist auf die Purchasing.ProductVendor-Tabelle, um die in der Product-Tabelle aktualisierten Zeilen auf die zu beschränken, die von VendorID 51 angegeben wurden.
USE AdventureWorks;
GO
UPDATE Production.Product
SET ListPrice = ListPrice * 2
WHERE ProductID IN
(SELECT ProductID
FROM Purchasing.ProductVendor
WHERE VendorID = 51);
GO
Nachfolgend ist eine gleichwertige UPDATE-Anweisung aufgeführt, die eine Verknüpfung verwendet:
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
Siehe auch