SIGNAL SQLSTATE ステートメントは、エラーをシグナルするのに使用されます。 指定した SQLSTATE と、 指定した diagnostic-string (診断ストリング) で戻されるエラーを生じさせます。
呼び出し
SIGNAL SQLSTATE ステートメントは、 トリガー内の起動された SQL ステートメントとしてのみ使用できます。
許可
このステートメントの実行には、特に権限は必要ありません。
構文
>>-SIGNAL--SQLSTATE--string-constant---(--diagnostic-string--)--><
説明
SQLSTATE がこれらの規則に従っていない場合には、エラーになります (SQLSTATE 428B3)。
例
PARTS 表に十分な在庫がある場合にのみ、ORDERS 表 (ORDERNO、 CUSTNO、 PARTNO、 QUANTITY) に受注を記録する受注システムを想定します。
CREATE TRIGGER check_avail NO CASCADE BEFORE INSERT ON orders REFERENCING NEW AS new_order FOR EACH ROW MODE DB2SQL WHEN (new_order.quantity > (SELECT on_hand FROM parts WHERE new_order.partno=parts.partno)) BEGIN ATOMIC SIGNAL SQLSTATE '75001' ('Insufficient stock for order'); END