更新資料

已完成

T-SQL 中的 UPDATE 陳述式可用來變更資料表中的現有資料。 UPDATE 是在一組資料列上運作,而這些資料列是由 WHERE 子句中的條件所定義或在聯結中定義。 UPDATE 陳述式有 SET 子句,可指定要修改的資料行。 SET 子句可指定一或多個資料行 (以逗號分隔),並為這些資料行提供新的值。 UPDATE 陳述式中的 WHERE 子句與 SELECT 陳述式中的 WHERE 子句具有相同的結構。

注意

請務必注意,沒有對應 WHERE 子句或聯結的 UPDATE 將會更新資料表中的所有資料列。 請謹慎使用 UPDATE 陳述式。

UPDATE 陳述式的基本語法如下所示。

UPDATE <TableName>
SET 
<ColumnName> = { expression | DEFAULT | NULL }
{,…n}
WHERE <search_conditions>;

下列範例顯示用來修改促銷附註的 UPDATE 陳述式:

UPDATE Sales.Promotion
SET Notes = '25% off socks'
WHERE PromotionID = 2;

您可以修改 SET 子句中的多個資料行。 例如,下列 UPDATE 陳述式針對名為 "Get Framed" 的促銷,修改了所有資料列的 [折扣] 和 [附註] 欄位:

UPDATE Sales.Promotion
SET Discount = 0.2, Notes = REPLACE(Notes, '10%', '20%')
WHERE PromotionName = 'Get Framed';

UPDATE 陳述式也支援 FROM 子句,可讓您根據查詢的結果修改資料。 例如,下列程式碼使用從 Product.ProductModel 資料表擷取的值更新 Sales.Promotion 資料表。

UPDATE Sales.Promotion
SET Notes = FORMAT(Discount, 'P') + ' off ' + m.Name
FROM Product.ProductModel AS m
WHERE Notes IS NULL
    AND Sales.Promotion.ProductModelID = m.ProductModelID;