UPDATE、DELETE、および INSERT ステートメントでのサブクエリ
サブクエリは、UPDATE、DELETE、INSERT、および SELECT の各データ操作言語 (DML) ステートメントで入れ子にできます。
次の例では、Production.Product
テーブルの ListPrice
列の値が 2 倍になります。WHERE 句のサブクエリでは Purchasing.ProductVendor
テーブルを参照して、Product
テーブルで更新される行を VendorID 51
の行だけに制限しています。
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
参照
概念
その他の技術情報
データベース内のデータの変更
INSERT (Transact-SQL)
UPDATE (Transact-SQL)
DELETE (Transact-SQL)
SELECT (Transact-SQL)