使用 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
資料行的值變成兩倍。
USE AdventureWorks ;
GO
UPDATE Production.Product
SET ListPrice = ListPrice * 2;
GO
SET 子句中使用的運算式也可以是僅傳回一個值的子查詢 。以下範例將修改 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 來變更資料