テーブル内で、INSERTまたはUPDATEリクエストによって更新可能な行を制限します。
次のルールは更新可能なビューおよびWITH CHECK OPTIONに適用されます。
- WITH CHECK OPTIONを指定した場合、ビューは更新可能でなければなりません。ビューが更新可能でない場合、WITH CHECK OPTIONを指定しても何も影響しません。
また、ビューを介して元の基本テーブルに対するINSERTまたはUPDATE操作を行っても、WHERE句条件がFALSEと評価する行は作成されません。
- 更新可能なビューにWITH CHECK OPTIONが指定されていない場合は、ビューを定義している、問合わせに含まれたWHERE句は、ビューを介して実行されるINSERTまたはUPDATEリクエストに対して無視されます。
- ネストされたビューを作成する場合は、単一の基本テーブルだけを参照するように定義することができます。このように定義することで、これらのビューが更新可能になります。その場合、ビュー定義にWITH CHECK OPTIONがあると、そのビューのWHERE句および元のビューのWHERE句が、INSERTまたはUPDATEリクエストの制約に対して検証されます。
例: 名前や職種のみのビューの作成
次のリクエストは、employee(従業員)テーブルのビューを作成し、部門300の従業員の名前と職種にだけアクセスすることを示します。
CREATE VIEW dept300 (name, jobtitle) AS SELECT name, jobtitle FROM employee WHERE DeptNo = 300 WITH CHECK OPTION;
WITH CHECK OPTIONによって、DeptNoが300でない行について、このビューを介してemployeeにINSERTすることと、employeeを更新することが防止されます。