关于SQL Server的view

今天就先发一篇数据库的基础文章,因为最近碰到过几个SQL Developer的工作,所以趁此机会把以前学校学的东西都拣拣。好了,废话不多说,进入正题吧。

首先View是干什么用的呢?

Views allow you to create a virtual representation of table data using a SELECT statement as its definition.

这句话说白了也就是说view是一种表的虚拟的表现形式.

View具体能干些什么呢?

  1. simplify data access for query writers. (简化数据访问)
  2. managing security and protecting sensitive data.(权限管理和保护敏感数据)
  3. grant permissions exclusively to views, rather than to the underlying tables (不直接分配表的权限给用户,用view来替代)
  4. expose only those columns that you wish the end user to see (可以让终端用户只看到他们要看的列)
  5. allow direct data updates. (允许更新数据)

以上这几点都是view再SQL server里面具体的作用。

 

View 的种类?

  1. Regular View (普通的view,我的理解就是最简单的view定义)
    • 不要嵌套view (例如用一个view 去叫另外一个view)
    • 如果可以尽量用stored procedure来代替view.(和view对比,每一次访问view,这个view的execution plan就会重新编译一次)
  2. Indexed View (索引的view,和table差不多,先定义普通view,然后再加上clustered index和non-clustered index. 注意:clustered index只能有一个)
  3. Distributed Partitioned View (分布式的view,这种view用UNION ALL 把几个不同的SQL Server的table结合在一起生成一个单独的table)

创建View的语法

 

CREATE VIEW [ schema_name . ] view_name [ (column [ ,] ) ] 
[ WITH [ ENCRYPTION ] [ SCHEMABINDING ] [ VIEW_METADATA ] [ ,] ] 
AS select_statement 
[ WITH CHECK OPTION ] 

 

 

具体如何看懂这些语法,请参考这篇文章这里

 

再创建view的时候有几条规则需要注意一下

第一 select表达式最多只能定义1024个列

第二 INTO, OPTION, COMPUTE, COMPUTE BY 还有引用其他表格变量都不能用

第三 ORDER BY不能直接用,除非和TOP一起用

 

困了。。。。明天继续写!待续

posted @ 2006-09-20 21:45  Vincent Yang  阅读(2807)  评论(0编辑  收藏  举报