首页 > 试题广场 >

在视图上使用INSERT语句,下列()情况可以进行插入操作(

[单选题]
在视图上使用INSERT语句,下列()情况可以进行插入操作()
  • 视图中包含了使用统计函数的结果
  • 视图由多个表连接而成,对多个表的列进行插入操作
  • 视图全部包含了基本表中属性为NOT NULL的列
  • 视图中使用了DICTINCT
推荐
1.若视图是由两个以上基本表导出的,则此视图不允许更新。
2.若视图的字段来自字段表达式或常数,则不允许对视图执行INSTER和UPDATE操作,但允许delete。
3.若视图的字段来自聚集函数,则此视图不允许更新。
4.若视图中含有GROUP by子句,则此视图不允许更新。
5.若视图中含有DISTINCT短语,则此视图不允许更新。.
6若视图定义中有嵌套查询,并且内层查询的FROM子句中涉及的表也是导出该视图的基本表,则此视图不允许更新。.
7.一个不允许更新的视图上定义的视图不允许更新。
编辑于 2016-05-03 19:49:06 回复(1)
视图除了进行查询记录外,也可以利用视图进行插入、更新、删除记录的操作,减少对基表中信息的直接操作,提高了数据的安全性。
在视图上使用INSERT语句添加数据时,要符合以下规则。
(1)使用INSERT语句向数据表中插入数据时,用户必须有插入数据的权利。
(2)由于视图只引用表中的部分字段,所以通过视图插入数据时只能明确指定视图中引用的字段的取值。而那些表中并未引用的字段,必须知道在没有指定取值的情况下如何填充数据,因此视图中未引用的字段必须具备下列条件之一。
      该字段允许空值。
      该字段设有默认值。
      该字段是标识字段,可根据标识种子和标识增量自动填充数据。
      该字段的数据类型为timestamp或uniqueidentifier。
(3)视图中不能包含多个字段值的组合,或者包含使用统计函数的结果。
(4)视图中不能包含DISTINCT或GROUP BY子句。
(5)如果视图中使用了WITH CHECK OPTION,那么该子句将检查插入的数据是否符合视图定义中SELECT语句所设置的条件。如果插入的数据不符合该条件,SQL Server会拒绝插入数据。
(6)不能在一个语句中对多个基础表使用数据修改语句。因此,如果要向一个引用了多个数据表的视图添加数据时,必须使用多个INSERT语句进行添加。
发表于 2015-11-20 10:31:43 回复(1)
如果视图定义中有如下子句则不能更新
1.分组 使用group by 和 Having
2.联结(选项B)
3.子查询
4.并集
5.聚集函数 MAX MIN COUNT AVG(选项A)
6.DISTINCT(选项D)
7.导出列

视图参考:http://blog.csdn.net/yujin753/article/details/43197941
发表于 2017-05-02 20:44:49 回复(1)
P142页DB2规定。
发表于 2016-01-20 15:27:40 回复(1)