指定されたテーブルの指定された列に新しい値を設定します。
Synopsis
UPDATE [restriction] table value-assignment-statement
[WHERE condition-expression]
UPDATE [restriction] table value-assignment-statement
[WHERE CURRENT OF identifier
[AND condition-expression]]
where value-assignment-statement can be:
SET columns = scalar-expressions
SET columns = [(columns)] VALUES (scalar-expressions)
SET columns = [(columns)] VALUES host-variable
UPDATE 文は、テーブルの列の既存の値を変更します。テーブルの行の更新は、直接行う方法と、ビューを使用した方法があります。ビューを使用して更新する場合は、
CREATE VIEW で説明されているように、必要条件や制限事項に従います。
-
%NOCHECK ビュー経由で UPDATE を実行する際、ビューの WITH CHECK OPTION 変数は実行されません。
-
%NOLOCK 行は UPDATE でロックされていません単独のユーザ/処理がデータベースを更新する際にのみ使用します。
-
%NOINDEX インデックス・マップは UPDATE 処理中には設定されません
-
%NOTRIGGER ベース・テーブル・トリガは UPDATE 処理中にはかかりません。
値割り当ての文内では、column-commalist を scalar-expression-commalist と等しく設定する際、値を設定した scalar-expression が各列に必要です。
UPDATE 文は、既存のベース・テーブルの行 (単独もしくは複数) に、新規の列の値を提供します。更新には、2 つの構文が利用できます。WHERE節が更新の範囲を制限しない限り、すべての更新はテーブル全体を更新するとみなされます。 例えば以下のようになります。
UPDATE Employees
SET StatusDate = '05/12/98', status = 'Purged'
WHERE status = 'Completed'
column-list 引数はオプションです。使用される場合、それは更新したい列の コンマで区切られたリストとなります。省略される場合、すべての列が更新されるとみなされます。
SET文 (単独、もしは複数のスカラ式と使用される場合) には、テーブルを更新するために、コンマで区切られた、値のリストが必要です。値は column-list 内で列名と位置的に対応しなければなりません。column-list が指定されていない場合、update-list は列番号順で指定された各ベース・テーブル列に対する値を含む必要があります。
UPDATE オペレーションは全か無かのイベントです。指定された列をすべて更新するか、まったくしないかのいずれかです。
Caché は、UPDATE の成功か失敗かを示した、ステータス変数 SQLCODE を返します。また、UPDATE オペレーションは %ROWCOUNT ローカル変数を、更新された行の数に設定します。