SET 句を使用したデータの変更
SET 句では、変更される列とその列の新しい値を指定します。WHERE 句の検索条件を満たすすべての行の指定された列の値が、SET 句で指定された値に更新されます。
次の例では、指定した市区町村に一致する行の郵便番号の値が変更されます。
USE AdventureWorks;
GO
UPDATE Person.Address
SET PostalCode = '98000'
WHERE City = 'Bothell';
GO
WHERE 句を指定しないと、すべての行が更新されます。たとえば、次のステートメントにより、SalesPerson
テーブルのすべての行の Bonus
、CommissionPct
、および SalesQuota
の各列の値が更新されます。
USE AdventureWorks;
GO
UPDATE Sales.SalesPerson
SET Bonus = 6000, CommissionPct = .10, SalesQuota = NULL;
GO
計算列の値を計算し、この値を更新操作に使用できます。次の例では、Product
テーブルのすべての行の ListPrice
列の値が 2 倍になります。
USE AdventureWorks ;
GO
UPDATE Production.Product
SET ListPrice = ListPrice * 2;
GO
SET 句で使用される式を、1 つの値のみを返すサブクエリにもできます。次の例では、SalesPerson
テーブルの SalesYTD
列が変更され、SalesOrderHeader
テーブルに記録された最新の売上高が反映されます。サブクエリにより、UPDATE
ステートメント内で各販売員の売上高が集計されます。
USE AdventureWorks;
GO
UPDATE Sales.SalesPerson
SET SalesYTD = SalesYTD +
(SELECT SUM(so.SubTotal)
FROM Sales.SalesOrderHeader AS so
WHERE so.OrderDate = (SELECT MAX(OrderDate)
FROM Sales.SalesOrderHeader AS so2
WHERE so2.SalesPersonID =
so.SalesPersonID)
AND Sales.SalesPerson.SalesPersonID = so.SalesPersonID
GROUP BY so.SalesPersonID);
GO
参照
概念
WHERE 句の使用によるデータの変更
FROM 句を使用したデータの変更
TOP の使用による更新行数の制限
UPDATE の使用によるデータの変更