比如我们创建了一个表T1和一个T1的视图V1,然后更改T1,再看V1的结果:首先创建表T1:复制代码代码如下:IFOBJECT_ID('T1')ISNOTNULLDROPTABLET1CREATETABLET1(col1INT,col2INT)INSERTINTOT1(col1,col2)VALUES(1,2)GO然后创建T1的视图V1:复制代码代码如下:CREATEVIEWV1ASSELECT*FROMT1在现实实践中,要避免在视图中的SELECT语句中使用*,在这只是演示。如果你查询视图V1就会出现以下结果: 接下来,我们对表T1添加一列col3:复制代码代码如下:ALTERTABLET1ADDcol3INT然后再次查询视图V1,你想这时的结果是三列呢,还是而列呢?答案是二列
比如我们创建了一个表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的结果就是三列了。
声明:本文内容来源自网络,文字、图片等素材版权属于原作者,平台转载素材出于传递更多信息,文章内容仅供参考与学习,切勿作为商业目的使用。如果侵害了您的合法权益,请您及时与我们联系,我们会在第一时间进行处理!我们尊重版权,也致力于保护版权,站搜网感谢您的分享!