当前位置: 首页 > 图文教程 > 数据库 > MSSQL > sql 刷新视图

MSSQL
详解SQL Server中数据库快照工作原理
VB应用程序访问SQL Server的常用方法
SQL Server特殊磁带备份及恢复设计
基于SQL Server的C/S数据库应用系统
如何实现SQL Server 2005快速Web分页
关于SQL Server数据库中转储设备分析
从外到内提高SQL Server数据库性能
准备SQL Server 2008透明数据加密
快速升级MySQL系统表
解析:在SQL Server下数据库链接的使用
细化解析:SQL Server 2005 数据库镜像
轻松接触SQL Server 2000实例的命名规则
SQL提供的进行数据传输的实用程序—BCP
SQL Server 2000 作数据库服务器的优点
解析:正确的理解SQL Server和XML支持
轻松了解数据库计算机的概念和发展方向
解析SQL Server数据体系和应用程序逻辑
SQL进行排序、分组、统计的10个新技巧
教你怎样打造SQL Server2000的安全策略
解析SQL Server 2005 溢用之:合并列值

MSSQL 中的 sql 刷新视图


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 235 ::
收藏到网摘: n/a

视图会保存元数据,列,安全,以及依赖等信息,如果我们把基础表的架构更改了,并不会直接反映到视图上来;更改架构后,使用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的结果就是三列了。