当前位置:  数据库>sqlserver

sql创建视图语法示例代码

    来源: 互联网  发布时间:2014-08-29

    本文导语:  用以下sql语句创建视图:   代码示例: --创建视图 --视图只会引用存放在表中的数据 --使用代码创建视图 create view viewname --创建视图 as sql select statement alter view viewname --修改视图 as sql select statement drop view viewname --删除视图...

用以下sql语句创建视图:
 

代码示例:

--创建视图
--视图只会引用存放在表中的数据

--使用代码创建视图
create view viewname --创建视图
as
sql select statement

alter view viewname --修改视图
as
sql select statement

drop view viewname --删除视图

create view v_eventlist
as
select ct.name as customertypename,c.lastname,c.firstname,c.nickname,emc.confirmdate,
e.code,e.datebegin,t.name as tourname,b.name as basecampname,e.comment
from tour as t
join event as e on e.tourid=t.tourid
join event_mm_customer as emc on emc.eventid=e.eventid
join customer as c on c.customerid=emc.customerid
join customertype as ct on ct.customertypeid=c.customertypeid
join basecamp as b on b.basecampid=t.basecampid

--视图不能包含select into选项
--视图不能引用临时表(名字中包含#的表)或者表变量
--视图不能包含compute或者compute by列,它只能使用标准的聚合函数和分组功能

--with check option 子句
--利用with check option子句,视图的where子句除了可以用来筛选检索的数据以外,还可以对插入和更新的数据进行检查。
--也就是说加了它后,对此视图的插入和更新数据都要符合构成此视图语句的where子句的条件(符合where条件的数据才能插入和更新)。
create view v_chatour
as
select [name] as tourname,basecampid
from tour
where basecampid=2
with check option

insert v_chatour (tourname,basecampid) values ('ccc',1) --插入失败
insert v_chatour (tourname,basecampid) values ('www',2) --插入成功

--在创建视图的sql语句中若没有TOP则不能使用order by
create view v_chatour
as
select top 10 basecampid,[name] as tourname --若没有此处的top 10,则下面的order by 出错
from tour
order by basecampid

--使用架构绑定选项(with schemabinding),为视图锁定基础表
create table test(fullname char(20))

create view v_test
with schemabinding
as
select fullname from dbo.test --*必须指定表的所有者dbo等

alter table test
alter column fullname char(30) --无法修改

--with encryption,加密视图源代码
select text from syscomments join sysobjects on sysobjects.id=syscomments.id --系统表中获得视图源代码
where name='v_test'

alter view v_test
with encryption --加密。加密后再执行上面的语句视图源代码就会乱码了。去掉此行,再执行此段代码,则解密。
as
select fullname from dbo.test

--可更新的视图
--1.只能对一个表进行更新
--2.可以使用视图或者基础表上的instead of触发器来对数据修改操作进行变更
--3.如果在视图中包含了聚合函数或者group by子句,那么视图就是不可更新的
--4.如果在视图中把一个子查询作为导出表来引用,,那么就不能将这个导出表中的任何一列作为视图的列输入,但是,可以在作为导出表的子查询中使用聚合函数
--5.如果视图包含了with check option ,那么,对视图的insert和update操作就必须满足where子句中条件的要求
--6.要对进行insert或者update操作的列必须对应于基础表中的唯一一个列。如果同一个列名出现在两个表,就应该在选择列表中明确地使用table.column的方式来唯一地标识它


    
 
 

您可能感兴趣的文章:

  • SQL SERVER先判断视图是否存在然后再创建视图的语句
  • sql 刷新视图
  • sql视图创建索引的方法
  • 如何查看表与视图结构?(sql数据库与mysql)
  • SQL Server 创建视图的语法
  • 快速删除数据库表、视图、存储过程的sql语句
  • sql server判断数据库、表、列、视图是否存在
  • 查看SQL Server数据库表、索引视图等占用空间大小的方法
  • sql server索引与视图用法分享
  • SQL视图搞定所有Sql Server数据库字典的方法介绍
  • 怎么查看SQL SERVER加密存储过程/函数/触发器与视图
  • 用SQL语句操作数据库的例子(添加 删除 修改 字段 视图等)
  • 探讨SQL利用INFORMATION_SCHEMA系统视图如何获取表的主外键信息
  • t-sql/mssql用命令行导入数据脚本的SQL语句示例
  • 拼接SQL字符串方法示例
  • sql 行转列示例代码
  • sql中count或sum为条件的查询示例(sql查询count)
  • sql 取代游标的写法示例
  • sql使用cast进行数据类型转换示例
  • sql 语句插入结果为select和值混合示例
  • sql2005统计技巧示例
  • sql函数实现递归查询示例
  • sql递归函数示例
  • java实现简单的给sql语句赋值的示例
  • sql多表行转列、级联行转列示例代码
  • sql级联删除与级联更新方法示例
  • t-sql清空表数据的两种方式示例(truncate and delete)
  • sql server 临时表的删除示例
  • php导入SQL文件(示例代码)
  • SQL 分布式查询、插入递增列示例
  • sql四舍五入函数示例
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 用SQL语法玩弄你的Redis RedisSQL
  • MySQL的SQL语法解析器 DBIx-MyParse
  • sql语法中什么类型的值需要用单引号‘’修饰?
  • SQL查询前10条记录(SqlServer/mysql/oracle)的语法分析
  • Oracle实现分页查询的SQL语法汇总
  • 基于sql语句的一些常用语法积累总结
  • sql server中创建链接服务器与远程账户映射的语法
  • sql 中 case when 语法使用方法
  • JDBC SQL语法
  • SQL Server高级内容之case语法函数概述及使用
  • Oracle和SQL语法区别整理
  • SQL语法 分隔符理解小结
  • MySQL prepare语句的SQL语法
  • SQL SERVER中各类触发器的完整语法及参数说明
  • ORACLE 常用的SQL语法和数据对象
  • 超详细的SQL语句语法汇总
  • SQL语句的基本语法
  • MySQL 最基本的SQL语法/语句
  • SQL 存储过程基础语法之一
  • java命名空间java.sql接口statement的类成员方法: executeupdate定义及介绍
  • 请问,这是什么错误!java.sql.SQLException: [Microsoft][ODBC SQL Server Driver][Named Pipes]??????? SQL Server?虽然分少,但一定给,只要您是前5名回复者中最好的以为!
  • java命名空间java.sql接口connection的类成员方法: nativesql定义及介绍
  • SQL查询分析工具 SQL Workbench/J
  • java命名空间java.sql接口preparedstatement的类成员方法: executeupdate定义及介绍
  • oracle导出sql语句的结果集和保存执行的sql语句(深入分析)
  • java命名空间java.sql接口rowid的类成员方法: getbytes定义及介绍
  • t-sql清空表数据的两种方式示例(truncate and delete) iis7站长之家
  • java命名空间java.sql接口ref的类成员方法: getbasetypename定义及介绍
  • SQL客户端软件 PKLite SQL Client
  • java命名空间java.sql接口databasemetadata的类成员方法: getsqlkeywords定义及介绍
  • SQL语句实现SQL Server 2000及Sql Server 2005日志收缩(批量)


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3