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

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

 

通常のビューのステータス

通常のビューには、ステータスが関連付けられています。ステータスは、データベースサーバーが使用するビューの利用可能性を反映しています。すべてのビューのステータスを表示するには、Sybase Central の左ウィンドウ枠で [ビュー] をクリックし、右ウィンドウ枠で [ステータス] カラムの値を検査します。また、単一のビューのステータスを表示するには、Sybase Central でビューを右クリックし、[プロパティ] をクリックして [ステータス] の値を検査します。

通常のビューのステータスの種類について、次に説明します。

  • VALID   ビューは有効で、その定義と一貫性があることが保証されています。データベースサーバーは、追加の作業なくこのビューを利用できます。有効にされたビューのステータスは VALID です。

    SYSOBJECT システムビューで、値 1 はステータス VALID を表します。

  • INVALID   INVALID ステータスは、参照先オブジェクトのスキーマ変更後に発生し、変更したためにビューを有効にしようとして失敗したことを表します。たとえば、ビュー v1 がテーブル t 内のカラム c1 を参照するとします。t を変更して c1 を削除する場合、カラムを削除する ALTER 操作の一環としてデータベースサーバーがビューを再コンパイルすると、v1 のステータスは INVALID に設定されます。このとき、v1 は c1 が t に追加された場合だけ再コンパイルできます。再コンパイルしない場合、v1 は c1 を参照しないように変更されます。ビューが参照するテーブルやビューを削除した場合も、そのビューは INVALID になります。

    INVALID ビューは DISABLED ビューと異なり、クエリなどで INVALID ビューが参照されるたびに、データベースサーバーはそのビューを再コンパイルしようとします。コンパイルに成功すると、クエリが処理されます。ビューを明示的に有効にしないかぎり、ステータスは INVALID のままです。失敗した場合は、エラーが返されます。

    データベースサーバーは、INVALID ビューを内部的に有効にすると、パフォーマンス警告を発行します。

    SYSOBJECT システムビューで、値 2 はステータス INVALID を表します。

  • DISABLED   無効にされたビューは、データベースサーバーがクエリに応答するために使用できません。無効にされたビューを使用しようとするクエリは、エラーを返します。

    通常のビューは、次の場合にこのステータスになります。

    • ビューを明示的に無効にした場合。ALTER VIEW...DISABLE 文を実行した場合など。

    • そのビューが依存するビュー (マテリアライズドビューまたは非マテリアライズドビュー) を無効にした場合。

    • テーブルのビューの依存性を無効にした場合。ALTER TABLE...DISABLE VIEW DEPENDENCIES 文を実行した場合など。

    SYSOBJECT システムビューで、値 4 はステータス DISABLED を表します。

 参照