データの更新

完了

T-SQL の UPDATE ステートメントは、テーブルの既存のデータを変更するために使用します。 UPDATE は、WHERE 句の条件によって定義されている、または結合で定義されている行のセットに対して作用します。 UPDATE ステートメントには、変更する列を指定する SET 句があります。 SET 句では、1 つ以上の列をコンマで区切って指定し、それらの列に新しい値を提供します。 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" であるすべての行の Discount フィールドと Notes フィールドの両方が変更されます。

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;