1.创建视图
视图是一个存储查询,其用于混合和匹配基本表的数据。其语法结构如下:
WITH ENCPYPTION:用于对视图进行加密,这样就不能够获取视图的代码。
WITH SCHEMABINDING:设置这个选项后,就可以创建视图索引了。
WITH VIEW_METADATA:使视图项表一样。
WITH CHECK OPTION用于规定:插入和删除的行必须满足视图中SELECT语句的WHERE条件。
eg: CREATE VIEW myView AS SELECT a,b,c FROM myTable
视图实质上是在基本表的基础上增加了一层,对视图进行操作,比直接对表进行操作要慢一些。创建了一个视图后,就可以像操作表一样操作视图。在对视图进行INSERT、UPDATE、DELETE操作时,要注意的几点:
1)如果视图包含连接,如果只对单个表的列进行操作,可以使用UPDATE操作。而其他情况,最好使用INSERT OF触发器。
2)如果视图仅仅引用单个表,并且所有的列都在视图中或者具有默认值,那么可以使用INSERT操作;否则需要使用INSERT OF触发器。
3)可以在有限范围内限制是否可以在视图中插入或更新内容。
4)如果使用了WITH CHECK OPTION,那么插入和更新必须满足视图的WHERE条件。
2.删除视图
其语法格式如下:
3.得到视图定义的方法
1)使用存储过程sp_helptext
eg:EXEC sp_helptext viewname
2)使用sys.modules元数据函数
eg: SELECT * FROM sys.modules WHERE object_id=OBJECT_ID('viewname');
4.视图加密
使用WITH ENCPYPTION选项,这样就不能通过3所述方法获取视图的代码。
5. 索引视图
通过设置选项WITH SCHEMABINDING,那么这个视图就可以创建索引了。但创建索引视图有几个限制:
1)如果视图引用了任何自定义函数,那么必须是绑定的。
2)视图中不能引用其他视图。
3)视图中的命名必须采用两部分命名规则,并且要和视图具有相同所有者。
4)视图和视图的引用必须在相同数据库。、
5)视图引用的任何函数必须是确定的。
6)在创建视图呵呵所有底层时,必须打开ANSI_NULLS和QUOTED_IDENTIFIER选项(使用SET命令)。