トリガを削除します。
Synopsis
DROP TRIGGER name FROM table
DROP TRIGGER コマンドは特権を必要とする操作です。
DROP TRIGGER を使用する前に、%DROP_TRIGGER 管理者権限を持っている必要があります。特権がない場合は、SQLCODE 99 エラー (特権違反) が返されます。適切な特権を持っている場合は、
GRANT コマンドを使用して %DROP_TRIGGER 特権を割り当てることができます。埋め込み SQL では、以下のように $SYSTEM.Security.Login メソッドを使用して適切な特権を持ったユーザとしてログインできます。
DO $SYSTEM.Security.Login("_SYSTEM","SYS")
&sql( )
トリガとそのテーブルは同じスキーマに存在している必要があります。トリガ名は、修飾、未修飾のどちらでもかまいません。未修飾の場合、既定では、トリガのスキーマは、FROM 節で指定されたテーブルのスキーマになります。FROM 節が存在しないか、テーブル名が未修飾の場合は、トリガのスキーマは既定でシステムの既定スキーマになります。トリガ名とテーブル名が両方とも修飾されている場合は、両方が同じスキーマを指定している必要があります。そうでない場合、Caché は SQLCODE -366 エラーを発行します。
Caché SQL では、トリガ名はスキーマ内の特定のテーブルに関して一意である必要があります。したがって、1 つのスキーマ内に同じ名前のトリガが複数存在する場合があります。オプションの FROM 節は、削除するトリガを決めるために以下のように使用されます。
-
FROM 節が指定されておらず、指定された名前と一致する一意のトリガがスキーマ内で見つかった場合、Caché はそのトリガを削除します。
-
FROM 節が指定され、指定された名前と FROM 節のテーブル名の両方に一致する一意のトリガがスキーマ内で見つかった場合、Caché はそのトリガを削除します。
-
FROM 節が指定されておらず、指定された名前と一致する複数のトリガが見つかった場合、Caché は SQLCODE -365 エラーを発行します。
-
FROM 節で指定されたテーブルに関して指定された名前のトリガが見つからないか、FROM 節が指定されていない場合にスキーマ内でどのテーブルに関しても指定された名前のトリガが見つからない場合、Caché は SQLCODE -363 エラーを発行します。
以下の例は、既定スキーマ (通常は
SQLUser) 内で任意のテーブルに関連する Trigger_1 という名前のトリガを削除します。
以下の例は、A スキーマ内で任意のテーブルに関連する Trigger_2 というトリガを削除します。
以下の例は、既定スキーマ内で Patient テーブルに関連する Trigger_3 というトリガを削除します。Trigger_3 という名前のトリガが見つかっても、Patient と関連していなければ、Caché は SQLCODE -363 エラーを発行します。
DROP TRIGGER Trigger_3 FROM Patient
以下の例はすべて、Test スキーマ内で Patient テーブルに関連する Trigger_4 というトリガを削除します。
DROP TRIGGER Test.Trigger_4 FROM Patient
DROP TRIGGER Trigger_4 FROM Test.Patient
DROP TRIGGER Test.Trigger_4 FROM Test.Patient