この項では、通常のビューの有効化と無効化について説明します。マテリアライズド・ビューの有効化と無効化については、マテリアライズド・ビューの有効化と無効化を参照してください。
通常のビューを有効または無効にすることで、データベース・サーバがそのビューを使用できるかどうかを制御できます。通常のビューを無効にすると、データベース・サーバはデータベース内のビューの定義を保持しますが、クエリを満たすときにそのビューを使用でません。クエリが無効なビューを明示的に参照している場合、そのクエリは失敗し、エラーが返されます。ビューが無効になったら、データベース・サーバがそのビューを使用できるように、明示的にもう一度有効にする必要があります。
ビューを無効にすると、そのビューを直接的または間接的に参照する他のビューも自動的に無効になります。このため、ビューを再度有効にしたら、無効にした時点でそのビューに依存していた他のすべてのビューを、もう一度有効にする必要があります。ビューを無効にする前に sa_dependent_views システム・プロシージャを使用することで、従属ビューのリストを特定できます。sa_dependent_views システム・プロシージャを参照してください。
通常のビューを有効にすると、データベース・サーバはデータベース内に格納されたビューの定義を使用してそのビューを再コンパイルします。コンパイルが成功すると、ビューのステータスが VALID に変更されます。再コンパイルに失敗した場合、1 つ以上の参照先オブジェクトでスキーマが変更された可能性があります。その場合は、ビュー定義と参照先のオブジェクトのどちらかを相互に一貫性があるように変更してから、ビューを有効にする必要があります。
通常のビューを有効にする前に、そのビューが参照しているビューをもう一度有効にしたり、無効にしたりする必要があります。
無効にされたオブジェクトのパーミッションを付与できます。無効にされたオブジェクトのパーミッションはデータベースに格納され、オブジェクトが有効になったときに有効になります。
DBA 権限のあるユーザとして、または通常のビューの所有者として、データベースに接続します。
左ウィンドウ枠で、[ビュー] をダブルクリックします。
ビューを右クリックして、[無効にする] を選択します。
DBA 権限のあるユーザとして、または通常のビューの所有者として、データベースに接続します。
ALTER VIEW ... DISABLE 文を実行します。
次の例では、GROUPO が所有する通常のビュー ViewSalesOrders が無効になります。
ALTER VIEW GROUPO.ViewSalesOrders DISABLE; |
DBA 権限のあるユーザとして、または通常のビューの所有者として、データベースに接続します。
左ウィンドウ枠で、[ビュー] をダブルクリックします。
ビューを右クリックして、[再コンパイルして有効にする] を選択します。
DBA 権限のあるユーザとして、または通常のビューの所有者として、データベースに接続します。
ALTER VIEW ... ENABLE 文を実行します。
次の例では、GROUPO が所有する通常のビュー ViewSalesOrders がもう一度有効になります。
ALTER VIEW GROUPO.ViewSalesOrders ENABLE; |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |