建立&修改视图

一、建立视图

IF OBJECT_ID(‘Sales.OrderTotalsByYear‘, ‘V‘) IS NOT NULL
    DROP VIEW Sales.OrderTotalsByYear;
GO

例一:

CREATE VIEW Sales.OrderTotalsByYear
WITH SCHEMABINDING ,  --在修改用于生成当前视图的表或视图时,一旦对当前视图产生影响(导致视图失效),则不允许修改。
     ENCRYPTION  --加密,不能编辑(加密等级并不高)
AS
    SELECT  YEAR(O.orderdate) AS orderyear ,
            SUM(OD.qty) AS qty
    FROM    Sales.Orders AS O
            JOIN Sales.OrderDetails AS OD ON OD.orderid = O.orderid
    GROUP BY YEAR(orderdate);
GO

例二:

CREATE VIEW dbo.viewTestIndexInfo
AS
    SELECT DISTINCT
            Employees.*
    FROM    Employees
            JOIN Sales ON Employees.EmployeeID = Sales.EmployeeID
    WHERE   Title = ‘Sales Person‘
WITH CHECK OPTION   --如过视图中有where语句,通过view来修改表格的时候有可能更新掉 where条件之外的行,该选项用来强制更改的内容必须匹配where条件

二、查看数据库内的视图

--To explore view metadata using T-SQL, you can query the sys.views catalog view:
USE TSQL2012;
GO
SELECT name, object_id, principal_id, schema_id, type
FROM sys.views;

--You can also query the INFORMATION_SCHEMA.TABLES system view, but it is slightly more complex:
SELECT SCHEMA_NAME, TABLE_NAME, TABLE_TYPE
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_TYPE = ‘VIEW‘;

三、修改视图

ALTER VIEW Sales.OrderTotalsByYear
WITH SCHEMABINDING
AS
    SELECT  O.shipregion ,
            YEAR(O.orderdate) AS orderyear ,
            SUM(OD.qty) AS qty
    FROM    Sales.Orders AS O
            JOIN Sales.OrderDetails AS OD ON OD.orderid = O.orderid
    GROUP BY YEAR(orderdate) ,
            O.shipregion;
GO

四、通过视图修改记录

--通过视图增加记录  如果视图带了CHECK OPTION 选项,那么插入的数据必须跟随WHERE条件
INSERT  vEmployees
        SELECT  3 ,
                ‘xxx‘ ,
                ‘xx‘
时间: 2024-11-05 12:09:19

建立&修改视图的相关文章

通过案例学调优之--跨库建立物化视图(Materialized View)

应用环境: 操作系统: RedHat EL55 Oracle:   Oracle 10gR2 一.物化视图概述 Oracle的物化视图是包括一个查询结果的数据库对像,它是远程数据的的本地副本,或者用来生成基于数据表求和的汇总表.物化视图存储基于远程表的数据,也可以称为快照. 物化视图可以用于预先计算并保存表连接或聚集等耗时较多的操作的结果,这样,在执行查询时,就可以避免进行这些耗时的操作,而从快速的得到结果.物化视图有很多方面和索引很相似:使用物化视图的目的是为了提高查询性能:物化视图对应用透明

[Django]中建立数据库视图

Django中建立数据库视图 Django中没有建立视图的接口,如果要建立一个视图需要一些手动的改变. 这里使用的Django 版本>1.5, 使用的数据库为mysql 第一步 建立视图,例如视图的名称叫做 user_info 第二步 model中这么写: class MyModel(models.Model): ... class Meta: managed = False db_table = "user_info" 这样就可以把视图经过orm变成对象了. REF: crea

像修改表数据一样修改视图数据

摘要:像修改表数据一样修改视图数据,具体思路是通过给视图增加触发器来实现修改实体表数据 实现效果: Update dbo.[视图] set [字段]=''   等价于  Update dbo.[表] set [字段]='' 备注:数据库使用的是Sql Server 2008 1)用户表 basicdata..[user]USE [BasicData]GO /****** Object:  Table [dbo].[user]    Script Date: 07/20/2015 16:22:31

ar - 建立, 修改档案或从档案中抽取成员.

总览 ar [-]{dmpqrtx}[abcfilNoPsSuvV] [membername] [count] archive files... 描述 GNU 组织的ar 程序 用于建立, 修改档案 或从档案中 抽取成员. 一个 档案 是一个 包含了 很多 其它 文件的 单独的 文件, 它采用的 结构 使得 可以 很容易 恢复 原来 独立的 文件 (称为 档案的 成员 ). 原始文件 (成员)的 内容, 权限, 时间属性, 属主和组都在档案中 得到 保留, 在抽取时 可以 得到 恢复. ar 程

修改视图后如果不重启django使视图生效

如果修改了django的view,在生产环境中重启服务器,成本会有一些大 如果是用uwsgi部署 直接用 touch $HOME/webapps/django/myapp/myapp/myapp.wsgi 参考 http://stackoverflow.com/questions/9183114/is-it-possible-to-reload-the-view-without-restarting-django https://community.webfaction.com/question

UIView+Extension方便在开发时快速修改视图的位置大小

在做iOS开发时,我们经常需要设定某个控件的大小,位置,通常我们采用的方法是用CGRectMake(<#CGFloat x#>, <#CGFloat y#>, <#CGFloat width#>, <#CGFloat height#>);来设置位置坐标,和自身的宽高,然后在赋值个控件的frame,这样做太麻烦,在一个项目里添加有一个UIview的分类,在分类里定义一些属性如下图所示 把头文件放到你的整个项目的头文件中就可以了,在任何地方使用时是需要点出来就行

MVC修改视图的默认路径

1.编写继承自RazorViewEngine的类,重写视图路径 1 public class ViewEngine : RazorViewEngine 2 { 3 /// <summary> 4 /// Initializes a new instance of the <see cref="ViewEngine"/> class. 5 /// </summary> 6 public ViewEngine() 7 { 8 var views = ne

MySQL 数据库视图:视图定义、创建视图、修改视图

简介 1·视图的概念2·创建视图3·使用视图 1·视图的概念什么是视图,一下咱们举个例子: 一个老板想要了解几个仓库的具体信息,想知道几个仓库里面还有多少大米.面粉.有多少种类,于是派出一个得力干将小王去清点货物,小王跑了很远之后终于清点完毕回报给老板.由于老板的生意很好,仓库的里面的东西经常发生变化,这时老板又需要知道几个仓库里的库存明细,又派小王去清点.这样来来回回,老板觉得小王台辛苦,也不容易,老板就多顾了几个人,A员工看守仓库1,B员工看守仓库2,C员工看守仓库3.这样就不需要来来回回跑

SQL学习之用命令方式创建、修改、删除视图

1.创建视图 (1)一般格式: create view 视图名 [with encryption] as select语句 [with check option] (2)定义单源表视图: 建立信息管理系学生的学号.姓名.性别和年龄的视图 create view is_student(studentid,studentname,sex,birth) as select studentid,studentname,sex,getdate()-birth from student where sdep