ビューを削除します。
Synopsis
DROP VIEW view-name [CASCADE | RESTRICT]
引数
view-name 削除するビューの名前。
CASCADE RESTRICT オプションview-name を参照する他のすべてのビューを削除する場合は CASCADE キーワードを指定します。RESTRICT は、view-name を参照するビューが他に存在するときに SQLCODE -321 エラーを発行する場合に指定します。既定値は RESTRICT です。
概要
DROP VIEW コマンドはビューを削除しますが、基となるテーブルやデータは削除しません。
DROP VIEW コマンドは特権を必要とする操作です。DROP VIEW を使用する前に、%DROP_VIEW 管理者特権または指定されたビューに対する DELETE オブジェクト特権を持っている必要があります。特権がない場合は、SQLCODE –99 エラー (特権違反) が返されます。適切な特権を持っている場合は、GRANT コマンドを使用して %DROP_VIEW 特権を割り当てることができます。埋め込み SQL では、以下のように $SYSTEM.Security.Login メソッドを使用して適切な特権を持ったユーザとしてログインできます。
   DO $SYSTEM.Security.Login("_SYSTEM","SYS")
   &sql(      )
存在しないビュー
存在しないビューを削除しようとすると、DROP VIEW は既定で SQLCODE -30 エラーを発行します。ただし、システム構成を以下のように設定することにより、このエラー報告動作をオーバーライドできます。
既定値は “偽” (0) です。この設定を推奨します。存在しないビューおよびテーブルに対して DROP VIEW および DROP TABLE の処理をせず、エラー・メッセージも発行しない場合は、“真” (1) に設定します。
他のビューから参照されるビュー
クエリで他のビューから参照されているビューを削除しようとすると、DROP VIEW は既定で SQLCODE -321 エラーを発行します。これは RESTRICT キーワードの動作です。
CASCADE キーワードを指定すると、クエリで他のビューによって参照されているビューの削除は成功します。さらに、DROP VIEW はクエリで view-name を参照しているすべてのビューも削除します。
以下の埋め込み SQL 例は、"CityAddressBook" という名前のビューを作成し、その後そのビューを削除します。
  &sql(CREATE VIEW CityAddressBook AS
     SELECT Name,Home_Street FROM Sample.Person 
     WHERE Home_City='Boston')
  IF SQLCODE=0 { WRITE !,"View created" }
  ELSE { WRITE !,"CREATE VIEW error: ",SQLCODE
         QUIT }
  /* Use the view */
  &sql(DROP VIEW CityAddressBook)
  IF SQLCODE=0 { WRITE !,"View dropped" }
  ELSEIF SQLCODE=-30 { WRITE !,"View non-existent" }
  ELSEIF SQLCODE=-321 { WRITE !,"View referenced by other views" }
  ELSE { WRITE !,"Unexpected DROP VIEW error: ",SQLCODE }
関連項目
ビュー ALTER VIEW CREATE VIEW GRANT