有効なビュー定義がすべて更新可能であるわけではありません。つまり、それらに対するDELETE、INSERT、またはUPDATE操作の実行を許可しないタイプのビュー定義がいくつかあります。ビューが更新可能であるための一般的なルールは、ビューに定義された行と、そのビューが定義された基礎となる実テーブルに定義されている同じ行との間に、1:1の対応関係が必要であるということです。その1:1の対応関係が存在しない場合、そのビューは更新可能ではありません。
次の機能がビュー定義のコンポーネントとして指定されると、そのビューは自動的に更新不可つまり読取り専用となります。
- 式
- 結合
ビュー定義で複数のテーブルが指定されている場合、そのビュー定義は更新不可です。
- 任意の形式の派生列
- 以下の特定のタイプを含む任意の形式の集約
- 順序付き分析関数
- 集約関数
- 以下を含む任意の形式の集約関連の句
- GROUP BY句
- HAVING句
- QUALIFY句
- 以下のすべての形式を含む集合演算子
- EXCEPTおよびMINUS
- INTERSECT
- UNION
- TOP nまたはTOP m PERCENT句
- DISTINCT演算子
- ビュー定義の主なWHERE句によって参照されるものと同じテーブルを参照する、ネストされたテーブル式を指定するWHERE句
更新不可ビューに対して以下のHELP文は、いずれも実行できません。
- HELP CONSTRAINT
- HELP INDEX
- HELP STATISTICS