MSDN的解释:
强制针对视图执行的所有数据修改语句都必须符合在 select_statement 中设置的条件。通过视图修改行时,WITH CHECK OPTION 可确保提交修改后,仍可通过视图看到数据。如果在 select_statement 中的任何位置使用 TOP,则不能指定 CHECK OPTION。
个人理解:
| 普通视图 | 视图 WITH CHECK OPTION |
查询 | 只能查询视图定义内的数据。 | |
增加 | 可以增加不符合视图定义的数据。 | 只能增加符合视图定义的数据。 |
修改 | 只能修改定义内的数据,而且修改的结果可以不在视图定义之内。 | 只能修改定义内的数据,但修改的结果还必须符合视图定义。 |
删除 | 只能删除视图定义内的数据。 |
以上论断可以这样验证:在SQL Server 2005环境下建立一个基础表、两个视图:
然后,分别对这两个视图进行增删改查操作。(具体过程,略)