WEB开发网
开发学院数据库MSSQL Server 细说Sql Server中的视图(下) 阅读

细说Sql Server中的视图(下)

 2009-06-19 10:29:26 来源:WEB开发网   
核心提示:4.更新视图视图是一个虚拟表,我们在查询视图的时候,细说Sql Server中的视图(下),实际上是对基础表的查询,视图不仅可以作为SELECT查询的目标,可以指定一些选项,这些选项用户控制视图的行为和功能,也可以作为修改语句的目标,当然

4.更新视图

视图是一个虚拟表,我们在查询视图的时候,实际上是对基础表的查询。视图不仅可以作为SELECT查询的目标,也可以作为修改语句的目标。当然,当你修改视图的时候,修改的时候是对基础表的修改,它就好像是一个代理。当然,如果不允许直接修改基础表,只允许修改视图,就可以限制你要公开的数据。这样,就可以对你的数据起到一定的保护作用,不过这种限制的时候很少。

那么在更新视图的时候,有哪些限制条件呢?

1,只要视图有一列不能隐式获取值,你就不能想视图中插入数据,如果列允许NULL、有默认值或者IDETITY属性,则说明它可以隐式获取值;

2,如果视图包含联结,UPDATE或INSERT语句只能影响联结的一端。也就是说,INSERT或UPDATE语句必须定义目标列列表,这些列只能数据联结的一端。你不能从由联结查询定义的视图中删除数据;

3,不能修改作为计算结果的列。如:标量表达式和聚合函数,SqlServer不会尝试改变数据库引擎的计算结果;

4,如果在创建或修改视图时指定了WITH CHECK OPTION选项,与视图的查询筛选器有冲突的INSERT或UPDATE语句将被拒绝;我在“视图选项”一节详细讲解一下。

如果视图上定义了INSERT OF触发器,则违反这些限制的数据修改语句可以被执行。在INSERT OF触发器中你可以用自己的代码替换原始修改;

当你允许对有联结查询定义的视图执行修改的时候,一定要谨慎,比如一对多的关系,如果你根据“多”的某一索引值修改对应“一”端某列值的记录,那么结果就可想而知;

5.视图选项

当你创建或修改视图时,可以指定一些选项,这些选项用户控制视图的行为和功能。

ENCRYPTION、SCHEMABINDING和VIEW_METADATA选项在视图头指定,CHECK OPTION选项则在查询之后指定;

1 2 3 4 5  下一页

Tags:细说 Sql Server

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接