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

SQL Anywhere 11.0.1 (日本語) » SQL Anywhere サーバ - SQL の使用法 » データベースの作成 » データベース・オブジェクトの使用 » 通常のビューの操作

 

通常のビューの変更

通常のビューは Sybase Central または Interactive SQL を使用して変更できます。

Sybase Central では、ビュー、プロシージャ、関数の定義は、右ウィンドウ枠の各オブジェクトの [SQL] タブで変更できます。別のウィンドウでビューを編集するには、ビューを選択し、[ファイル] - [新しいウィンドウで編集] を選択します。Interactive SQL では、ALTER VIEW 文を使用して、ビューを変更できます。ALTER VIEW 文はビューの定義を新しい定義に置き換えますが、ビュー上のパーミッションはそのまま保持されます。

既存のビューの名前を変更することはできません。代わりに、新しい名前を付けて新しくビューを作成し、以前の定義をそこにコピーしてから、元のビューを削除します。

ALTER VIEW 文を使用して別のユーザが所有するマテリアライズド・ビューを変更する場合は、所有者を含めて名前を修飾する必要があります (たとえば、GROUPO.EmployeeConfidential)。名前を修飾しなかった場合、データベース・サーバは、ユーザ本人が所有する同名のビューを検索して変更します。見つからない場合は、エラーが返されます。

ビューの変更とビューの依存性

通常のビューの定義を変更する場合、ビューに他のビューの依存性が存在するときは、変更後に追加の操作が必要なことがあります。たとえば、ビューの変更後、データベース・サーバはそのビューを自動的に再コンパイルして、データベース・サーバが使用できるように有効にします。従属した通常のビューが存在する場合、データベース・サーバはそれらも無効にしてからもう一度有効にします。有効にできない場合、ステータスは INVALID になるため、通常のビューの定義と従属した通常のビューの定義が一貫性を保つようにする必要があります。

通常のビューに従属ビューが存在するかどうかを判断するには、sa_dependent_views システム・プロシージャを使用します。sa_dependent_views システム・プロシージャを参照してください。

基本となるオブジェクトに対するスキーマの変更によってビューが受ける影響の詳細については、ビューの依存性を参照してください。

♦  通常のビューを変更するには、次の手順に従います (Sybase Central の場合)。
  1. DBA 権限のあるユーザとして、または通常のビューの所有者として、データベースに接続します。

  2. 左ウィンドウ枠で、[ビュー] をダブルクリックします。

  3. ビューを選択します。

  4. 右ウィンドウ枠で、[SQL] タブをクリックし、定義のコードを編集します。

    ヒント

    複数のビューを編集する場合は、各ビューを右ウィンドウ枠の [SQL] タブで編集するより、各ビューに対して別のウィンドウを開く方が便利な場合があります。別のウィンドウを開くには、ビューを選択し、[ファイル] - [新しいウィンドウで編集] を選択します。

  5. [ファイル] - [保存] を選択します。

♦  通常のビューを変更するには、次の手順に従います (SQL の場合)。
  1. DBA 権限のあるユーザとして、または通常のビューの所有者として、データベースに接続します。

  2. ALTER VIEW 文を実行します。

この例では、通常のビューを変更する場合は、実際にはビューの定義を置き換えていることを示します。ここでは、ビュー定義のカラム名をよりわかりやすい名前に変更します。

CREATE VIEW DepartmentSize ( col1, col2 ) AS
   SELECT DepartmentID, COUNT( * )
   FROM Employees GROUP BY DepartmentID;
ALTER VIEW DepartmentSize ( DepartmentNumber, NumberOfEmployees ) AS
   SELECT DepartmentID, COUNT( * )
   FROM Employees GROUP BY DepartmentID;

次の例では、通常のビューの属性だけを変更する場合は、ビューを再定義する必要がないことを示します。ここでは、定義が非表示になるようにビューを設定します。

ALTER VIEW DepartmentSize SET HIDDEN;

ALTER VIEW 文を参照してください。