Подзапросы в инструкциях UPDATE, DELETE и INSERT
Подзапросы вкладываются в инструкции языка DML UPDATE, DELETE, INSERT и SELECT.
В следующем примере удваивается значение столбца ListPrice
таблицы Production.Product
. Вложенный запрос в предложении 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)