服务器之家:专注于服务器技术及软件下载分享
分类导航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|数据库技术|

服务器之家 - 数据库 - Sql Server - sql 刷新视图

sql 刷新视图

2019-11-11 15:13mssql教程网 Sql Server

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

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

复制代码代码如下:


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: 

复制代码代码如下:


CREATE VIEW V1 
AS 
SELECT * FROM T1 



在现实实践中,要避免在视图中的SELECT语句中使用*,在这只是演示。如果你查询视图V1就会出现以下结果:
sql 刷新视图 

接下来,我们对表T1添加一列col3: 

复制代码代码如下:


ALTER TABLE T1 ADD col3 INT 


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

延伸 · 阅读

精彩推荐