SQL Engine Reference (v11)

UPDATE(位置付け)

UPDATE(位置付け)ステートメントにより、SQL カーソルに関連付けられた行セットの現在の行を更新します。

構文

UPDATE [テーブル名] SET 列名 = プロシージャ式 
   [, 列名 = プロシージャ式]... 
   WHERE CURRENT OF カーソル名 
 
テーブル名 ::= ユーザー定義名 
 
カーソル名 ::= ユーザー定義名 

備考

このステートメントは、ストアド プロシージャ、トリガー、およびセッション レベルでのみ使用できます。


メモ

セッション レベルでは位置付け UPDATE は使用できますが、DECLARE CURSOR ステートメントは使用できません。アクティブな結果セットのカーソル名を取得するには、SQLGetCursorName() API を使用します。

位置付け UPDATE ステートメントをセッション レベルで使用する場合のみ、ステートメントにテーブル名を指定できます。テーブル名をストアド プロシージャやトリガーを使って指定することはできません。


次の一連のステートメントは、位置付け UPDATE ステートメントの設定を示します。位置付け UPDATE に必要なステートメントは、DECLARE CURSOR、OPEN CURSOR、および FETCH FROM カーソル名です。

この例の位置付け UPDATE は、HIS 305 という講座名を HIS 306 に変更します。

CREATE PROCEDURE UpdateClass(); 
BEGIN 
  DECLARE :CourseName CHAR(7); 
  DECLARE :OldName CHAR(7); 
  DECLARE  c1 cursor FOR SELECT name FROM course  
     WHERE name = :CourseName FOR UPDATE; 
  SET :CourseName = 'HIS 305'; 
  OPEN c1; 
  FETCH NEXT FROM c1 INTO :OldName; 
  UPDATE SET name = 'HIS 306' WHERE CURRENT OF c1; 
END; 

関連項目

CREATE PROCEDURE

CREATE TRIGGER


UPDATE

USER