加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 数据库 > MsSql > 正文

sql 刷新视图

发布时间:2020-05-24 23:23:42 所属栏目:MsSql 来源:互联网
导读:视图会保存元数据,列,安全,以及依赖等信息,如果我们把基础表的架构更改了,并不会直接反映到视图上来;更改架构后,使用sp_refreshview存储过程刷新视图的元数据是一个好习惯;

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

首先创建表T1:


<div class="codetitle"><a style="CURSOR: pointer" data="22245" class="copybut" id="copybut22245" onclick="doCopy('code22245')"> 代码如下:<div class="codebody" id="code22245">
IF OBJECT_ID('T1') IS NOT NULL
DROP TABLE T1
CREATE TABLE T1(col1 INT,col2 INT)
INSERT INTO T1(col1,col2) VALUES(1,2)
GO

然后创建T1的视图V1:
<div class="codetitle"><a style="CURSOR: pointer" data="13959" class="copybut" id="copybut13959" onclick="doCopy('code13959')"> 代码如下:<div class="codebody" id="code13959">
CREATE VIEW V1
AS
SELECT FROM T1
在现实实践中,要避免在视图中的SELECT语句中使用
,在这只是演示。如果你查询视图V1就会出现以下结果:
<IMG alt="" src="http:https://files.jb51.cc/upload/20090718145439208.png"&gt;接下来,我们对表T1添加一列col3:
<div class="codetitle"><a style="CURSOR: pointer" data="91933" class="copybut" id="copybut91933" onclick="doCopy('code91933')"> 代码如下:<div class="codebody" id="code91933">
ALTER TABLE T1 ADD col3 INT

然后再次查询视图V1,你想这时的结果是三列呢,还是而列呢?答案是二列。T1架构的改变,并没有影响到视图的元数据中,这时候,如果我们要刷新一下视图V1,我们就可以用:EXEC sp_refreshview V1 命令, 再次查询,V1的结果就是三列了。

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读