视图可以修改任何基表中的数据对还是
1个回答
关注
展开全部
咨询记录 · 回答于2024-01-09
视图可以修改任何基表中的数据对还是
亲,您好!确实可以修改视图,但需要注意以下限制:
1. 只要视图中的任何一列不能隐式获取值,您就不能向该视图插入数据。如果某列允许NULL值、具有默认值、设置了IDENTITY属性或类型为ROWVERSION,则表明它可以隐式地获取值。
2. 如果视图由一个联接查询(join query)定义,UPDATE或INSERT语句只能影响联接的一端。也就是说,INSERT语句必须定义目标列列表,这些列只能属于联接的一端。同样,UPDATE语句修改的列也必须都属于联接的一端。但是,您可以在查询的其他地方(如赋值语句的右端、查询筛选器等)引用任何列。您不能从由联接查询定义的视图中删除数据。
3. 不能修改作为计算结果的列。标量表达式和聚合(aggregate)。SQL Server不会尝试改变数据库引擎的计算结果。
4. 如果在创建或修改视图时指定了WITH CHECK OPTION选项,与视图的查询筛选器有冲突的INSERT或UPDATE语句将被拒绝。