比如我們創建了一個表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的結果就是三列了。