刷新视图

       视图会保存元数据,列,安全,以及依赖等信息,如果我们把基础表的架构更改了,并不会直接反映到视图上来;更改架构后,使用sp_refreshview存储过程刷新视图的元数据是一个好习惯;

比如我们创建了一个表T1和一个T1的视图V1,然后更改T1,再看V1的结果:

首先创建表T1:
SQL复制代码
  1. IF OBJECT_ID('T1'IS NOT NULL     
  2.    DROP TABLE T1      
  3.    CREATE TABLE T1(col1 INT,col2 INT)   
  4.    INSERT INTO T1(col1,col2) VALUES(1,2)       
  5. GO  
然后创建T1的视图V1:
SQL复制代码
  1. CREATE VIEW V1   
  2. AS      
  3.  SELECT * FROM T1  
       在现实实践中,要避免在视图中的SELECT语句中使用*,在这只是演示。如果你查询视图V1就会出现以下结果:
 

接下来,我们对表T1添加一列col3:
SQL复制代码
  1. ALTER TABLE T1 ADD col3 INT  
       然后再次查询视图V1,你想这时的结果是三列呢,还是而列呢?答案是二列。T1架构的改变,并没有影响到视图的元数据中,这时候,如果我们要刷新一下视图V1,我们就可以用:EXEC sp_refreshview V1 命令, 再次查询,V1的结果就是三列了。


上一篇:Discuz!NT论坛整合ASP程序论坛

下一篇:fckeditor关闭弹出窗口

留下脚印压缩包密码:sosuo8
名字:
全部评论:
申明:本站部分文章来自网络,由于各种原因对文章的来源无从考究,如果您是“ 刷新视图 ”的原作者,若侵犯您的版权,请与我联系!在此请您原谅我的幼稚和无知!联系方法:email:ahuinan@21cn.com  QQ:106494262

感谢以下网友对网站提出的建议:
1、感谢“蓝树叶kiss”网友发现一个评论漏洞。(2009-2-28)
2、感谢“陈臣”对程序优化和seo方面的建议。(2009-3-18)
文章档案
  • 作者:xbf321
  • 来源:xbf321's blog
  • 日期:2009-6-19 20:01:00
  • 点击:646
网友投票(您觉得这篇文章怎样?)
loadding...请稍侯......