专栏首页小麦苗的DB宝专栏【DB笔试面试424】SQL Server哪类视图是可以更新的?请举例说明。

【DB笔试面试424】SQL Server哪类视图是可以更新的?请举例说明。

题目

SQL Server哪类视图是可以更新的?请举例说明。

答案

答案:SQL Server 2000有两种方法增强可更新视图的类别:

(1)INSTEAD OF触发器

可以在视图上创建INSTEAD OF触发器,从而使视图可更新。当对一个定义了INSTEAD OF触发器的视图执行操作的时候,实际上执行的是触发器中定义的操作,而不是触发了触发器的数据修改语句。因此,如果在视图上存在INSTEAD OF触发器,那么通过该语句可更新相应的视图。

(2)分区视图

如果视图属于“分区视图”的指定格式,那么该视图的可更新性将受到限制。如果视图没有INSTEAD OF触发器,或者视图不是分区视图,那么视图只有满足下列条件才可更新:

l SELECT_statement在选择列表中没有聚合函数,也不包含TOP、GROUP BY、UNION或DISTINCT子句。

l SELECT_statement的选择列表中没有派生列。派生列是由任何非简单列表达式(使用函数、加法或减法运算符等)所构成的结果集列。

l SELECT_statement中的FROM子句至少引用一个表。SELECT_statement必须不能只包含非表格格式的表达式(即不是从表派生出的表达式)。例如,以下视图是不可更新的:

CREATE VIEW NoTable AS

SELECT GETDATE() AS CurrentDate,

@@LANGUAGE AS CurrentLanguage,

CURRENT_USER AS CurrentUser;

About Me:小麦苗

● 本文作者:小麦苗,只专注于数据库的技术,更注重技术的运用

● 作者博客地址:http://blog.itpub.net/26736162/abstract/1/

● 本系列题目来源于作者的学习笔记,部分整理自网络,若有侵权或不当之处还请谅解

● 版权所有,欢迎分享本文,转载请保留出处

● 题目解答若有不当之处,还望各位朋友批评指正,共同进步

本文分享自微信公众号 - DB宝(xiaomaimiaolhr),作者:小麦苗best

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-10-18

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 【DB笔试面试431】在视图上不能完成的操作是()

    视图是由从数据库的基本表中选取出来的数据组成的逻辑窗口,它不同于基本表,它是一个虚拟表,其内容由查询定义。在数据库中,存放的只是视图的定义而已,而不存放数据,这...

    小麦苗DBA宝典
  • 【DB笔试面试516】Oracle中的视图分为哪几类?

    (5)内联视图(Inline View),也叫内嵌视图、临时视图、行内视图、或内建视图,它是出现在FROM子句中的子查询,内联视图不属于数据库对象。

    小麦苗DBA宝典
  • 【DB笔试面试539】在Oracle中,数据字典分为哪几类?

    数据字典(Data Dictionary)也就是通常所说的系统目录,它是Oracle数据库中最重要的组成部分。数据字典记录了数据库的系统信息,它是只读表和视图的...

    小麦苗DBA宝典
  • Mysql性能调优(二)

      从上篇文章开始,我们开始给大家陆续介绍mysql的优化部分。上篇文章首先给大家介绍了在Linux中安装和配置mysql的相关内容,接着给大家介绍了索引的相关...

    stefan666
  • MySQL视图的创建与使用

    视图是MySQL的一种虚拟表,实际的表我们可以看到每一行的数据,而视图是另一种形式的表,他可以将任何的查询结果变成一种虚拟的表方便下一次进行查询。

    大猫的Java笔记
  • SwiftUI:使用 @EnvironmentObject 从环境中读取自定义值

    SwiftUI的环境使我们可以使用来自外部的值,这对于读取Core Data上下文或视图的展示模式等很有用。但是我们也可以将自定义对象发送到环境中,并在以后将它...

    韦弦zhy
  • MySQL引擎和视图的点

    存储引擎Storage Engine:MySQL中的数据、索引以及其他对象是如何存储的,是一套文件系统的实现。

    孙玄@奈学教育
  • Mysql进阶三板斧(一)带你彻底搞懂View视图的原理及应用

    既然视图的定义是基于基本表的,哪为什么还要定义视图呢?这是因为合理地使用视图能够带来许多好处:

    陈哈哈
  • MySQL(十)之视图

    前言 前面给大家介绍了查询语句,感觉写的还不错的,喜欢的可以去查看。今天给大家分享的是MySQL中的视图。 视图(View):视图是由查询结果形成一张虚拟的表。...

    用户1195962

扫码关注云+社区

领取腾讯云代金券