使用 SET 子句變更資料

SET 指定所要變更的資料行,以及該資料行的新值。在符合 WHERE 子句搜尋條件的所有資料列中,以 SET 子句中所指定之值,來更新指定資料行的值。

以下範例會變更符合指定城市之資料列的郵遞區號值。

USE AdventureWorks;
GO
UPDATE Person.Address
SET PostalCode = '98000'
WHERE City = 'Bothell';
GO

若未指定 WHERE 子句,則會更新所有資料列。例如, 此陳述式會更新 SalesPerson 資料表中所有資料列內 BonusCommissionPctSalesQuota 資料行的值。

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 來變更資料

說明及資訊

取得 SQL Server 2005 協助