您好,欢迎访问一九零五行业门户网

sql 刷新视图

视图会保存元数据,列,安全,以及依赖等信息,如果我们把基础表的架构更改了,并不会直接反映到视图上来;更改架构后,使用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就会出现以下结果:
接下来,我们对表t1添加一列col3:
代码如下:
alter table t1 add col3 int
然后再次查询视图v1,你想这时的结果是三列呢,还是而列呢?答案是二列。t1架构的改变,并没有影响到视图的元数据中,这时候,如果我们要刷新一下视图v1,我们就可以用:exec sp_refreshview v1 命令, 再次查询,v1的结果就是三列了。
其它类似信息

推荐信息