Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SAP Sybase SQL Anywhere 16.0 » SQL Anywhere サーバ SQL の使用法 » テーブル、ビュー、インデックス » ビュー » 通常のビュー

 

通常のビューの無効化または有効化 (SQL の場合)

通常のビューを有効または無効にすることで、データベースサーバがそのビューを使用できるかどうかを制御できます。

前提条件

所有者であるか、または次のいずれかの権限を持っていることが必要です。

  • ALTER ANY VIEW システム権限
  • ALTER ANY OBJECT システム権限

通常のビューを「有効にする」には、基本となるテーブルに対する SELECT 権限または SELECT ANY TABLE システム権限必要です。

通常のビューを有効にする前に、そのビューが参照する無効なビューを再度有効にする必要があります。

内容と備考

ビューを無効にすると、そのビューを直接的または間接的に参照する他のビューも自動的に無効になります。このため、ビューを再度有効にしたら、無効にした時点でそのビューに依存していた他のすべてのビューを、もう一度有効にする必要があります。ビューを無効にする前に sa_dependent_views システムプロシージャを使用することで、従属ビューのリストを特定できます。

 ♦ タスク
  1. データベースに接続します。

  2. 通常のビューを無効にするには、ALTER VIEW...DISABLE 文を実行します。

  3. 通常のビューを有効にするには、ALTER VIEW...ENABLE 文を実行します。

結果

通常のビューを無効にした場合、データベースサーバはデータベース内のビューの定義を保持しますが、クエリを満たすときにそのビューを使用できません。

無効なビューをクエリが明示的に参照すると、そのクエリは失敗し、エラーが返されます。

次の手順

このため、ビューを再度有効にしたら、無効にした時点でそのビューに依存していた他のすべてのビューを、もう一度有効にする必要があります。ビューを無効にする前に sa_dependent_views システムプロシージャを使用することで、従属ビューのリストを特定できます。

通常のビューを有効にすると、データベースサーバはデータベース内に格納されたビューの定義を使用してそのビューを再コンパイルします。コンパイルが成功すると、ビューのステータスが VALID に変更されます。再コンパイルに失敗した場合、1 つ以上の参照先オブジェクトでスキーマが変更された可能性があります。その場合は、ビュー定義と参照先のオブジェクトのどちらかを変更し、相互に整合させてから、ビューを有効にします。

ビューが無効になったら、データベースサーバがそのビューを使用できるように、明示的にもう一度有効にする必要があります。

次の例では、GROUPO が所有する通常のビュー ViewSalesOrders が無効になります。

ALTER VIEW GROUPO.ViewSalesOrders DISABLE;

次の例では、GROUPO が所有する通常のビュー ViewSalesOrders がもう一度有効になります。

ALTER VIEW GROUPO.ViewSalesOrders ENABLE;

 参照