この文は、ビューの定義を修正したものに置き換える場合に使用します。
ALTER VIEW [ owner.]view-name [ ( column-name, ... ) ] AS select-statement [ WITH CHECK OPTION ]
ALTER VIEW [ owner.]view-name { SET HIDDEN | RECOMPILE | DISABLE | ENABLE }
AS 句 この句の用途と構文は、CREATE VIEW 文と同じです。CREATE VIEW 文を参照してください。
WITH CHECK OPTION 句 この句の用途と構文は、CREATE VIEW 文と同じです。CREATE VIEW 文を参照してください。
SET HIDDEN 句 SET HIDDEN 句は、ビューと句の定義を難読化し、このビューを Sybase Central などのビューから見えないようにします。ただし、難読化してもビューの明示的な参照は機能します。
SET HIDDEN 操作は元に戻せません。
RECOMPILE 句 RECOMPILE 句は、ビューのカラム定義を再作成するときに使用します。この句は、無効にされていないビューに使用できるという点を除き、ENABLE 句の機能と同じです。ビューが再コンパイルされると、データベース・サーバは、新しいビュー定義に指定されたカラム名に基づいて、カラム・パーミッションをリストアします。カラムが再コンパイル後に存在しない場合、既存のパーミッションは失われます。
ENABLE 句 ENABLE 句は無効にしたビューを有効にするときに使用します。ビューを有効にすると、データベース・サーバでビューのカラム定義が再作成されます。依存しているビューを有効にしてから、ビューを有効にします。
別のユーザが所有するビューを変更する場合は、所有者を含めて名前を修飾する必要があります (たとえば、GROUPO.ViewSalesOrders)。名前を修飾しなかった場合、データベース・サーバは、ユーザ本人が所有する同名のビューを検索して変更します。見つからない場合は、エラーが返されます。
ビューを変更しても、ビューに対する既存のパーミッションはそのまま維持されます。このため、パーミッションの再割り当ては必要ありません。ALTER VIEW 文を使用する代わりに、DROP VIEW 文でビューを削除してから CREATE VIEW 文でビューを再作成することもできます。ただし、削除してから再作成する場合、ビューのパーミッションを再割り当てする必要があります。
構文 1 を使用してビューを完了した後に、データベース・サーバはビューを再コンパイルします。変更の種類によっては、従属ビューがあれば、データベース・サーバは従属ビューも再コンパイルしようとします。従属ビューに影響を及ぼす変更を加える場合、従属ビューの定義も変更が必要なことがあります。ビューの変更とビューの依存関係に影響を及ぼす内容の詳細については、ビューの依存性を参照してください。
ビューを定義する SELECT 文にアスタリスク (*) が含まれていた場合、ビュー内のカラム数は、基本となるテーブルでカラムが追加または削除された場合に変化することがあります。ビュー・カラムの名前とデータ型も変化する場合があります。
構文 1 この構文はビューの構造を変更するときに使用します。変更が各カラムに制限されるテーブルを変更する場合とは異なり、ビュー構造の変更には、新しい定義で全体のビュー定義を置換する必要があります。ビューを新規作成するときと同様です。ビュー構造の定義に使用するパラメータの詳細については、CREATE VIEW 文を参照してください。
構文 2 この構文は、ビュー定義を非表示にするかどうかなど、ビューの属性を変更するときに使用します。
SET HIDDEN を使用すると、ビューをアンロードしてから他のデータベースにリロードすることができます。SET HIDDEN を使用すると、デバッガを使用したデバッグでも、プロシージャ・プロファイリングによっても、ビュー定義は表示されません。非表示のビュー定義を変更するには、ビューを削除してから、CREATE VIEW 文を使用して再作成します。
DISABLE 句を使用すると、データベース・サーバがクエリに応答するときにビューを使用できなくなります。ビューの無効化は削除と似ていますが、無効化はビュー定義がデータベースに残る点が異なります。ビューを無効にすると、従属ビューも無効になります。DISABLE 句によって従属ビューも無効になるため、無効化されるビューだけでなく、すべての従属ビューに対する排他アクセスが必要です。
ビューの所有者であるか、DBA 権限が必要です。
オートコミット。
すべてのプロシージャとトリガがメモリからアンロードされるため、元のビューを参照するプロシージャやトリガには新しいビュー定義が反映されます。ビューを頻繁に変更すると、プロシージャとトリガのアンロードとロードによってパフォーマンスが低下することがあります。
SQL/2003 ベンダ拡張。
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |