sql 刷新視圖
更新時間:2009年07月18日 14:54:40 作者:
視圖會保存元數(shù)據(jù),列,安全,以及依賴等信息,如果我們把基礎(chǔ)表的架構(gòu)更改了,并不會直接反映到視圖上來;更改架構(gòu)后,使用sp_refreshview存儲過程刷新視圖的元數(shù)據(jù)是一個好習慣;
比如我們創(chuàng)建了一個表T1和一個T1的視圖V1,然后更改T1,再看V1的結(jié)果:
首先創(chuàng)建表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
然后創(chuàng)建T1的視圖V1:
CREATE VIEW V1
AS
SELECT * FROM T1
在現(xiàn)實實踐中,要避免在視圖中的SELECT語句中使用*,在這只是演示。如果你查詢視圖V1就會出現(xiàn)以下結(jié)果:
接下來,我們對表T1添加一列col3:
ALTER TABLE T1 ADD col3 INT
然后再次查詢視圖V1,你想這時的結(jié)果是三列呢,還是而列呢?答案是二列。T1架構(gòu)的改變,并沒有影響到視圖的元數(shù)據(jù)中,這時候,如果我們要刷新一下視圖V1,我們就可以用:EXEC sp_refreshview V1 命令, 再次查詢,V1的結(jié)果就是三列了。
首先創(chuàng)建表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
然后創(chuàng)建T1的視圖V1:
復制代碼 代碼如下:
CREATE VIEW V1
AS
SELECT * FROM T1
在現(xiàn)實實踐中,要避免在視圖中的SELECT語句中使用*,在這只是演示。如果你查詢視圖V1就會出現(xiàn)以下結(jié)果:
接下來,我們對表T1添加一列col3:
復制代碼 代碼如下:
ALTER TABLE T1 ADD col3 INT
然后再次查詢視圖V1,你想這時的結(jié)果是三列呢,還是而列呢?答案是二列。T1架構(gòu)的改變,并沒有影響到視圖的元數(shù)據(jù)中,這時候,如果我們要刷新一下視圖V1,我們就可以用:EXEC sp_refreshview V1 命令, 再次查詢,V1的結(jié)果就是三列了。
相關(guān)文章
mssql server .ldf和.mdf的文件附加數(shù)據(jù)庫的sql語句
mssql server .ldf和.mdf的文件附加數(shù)據(jù)庫的sql語句...2007-07-07
sql語句將數(shù)據(jù)庫一條數(shù)據(jù)通過分隔符切割成多列方法實例
最近工作中遇到數(shù)據(jù)表中有一列數(shù)據(jù),然后需要將該列數(shù)據(jù)分成三列,下面這篇文章主要給大家介紹了關(guān)于sql語句將數(shù)據(jù)庫一條數(shù)據(jù)通過分隔符切割成多列的相關(guān)資料,需要的朋友可以參考下2023-03-03
SQLSERVER編譯與重編譯發(fā)生場景及重用的利弊介紹
本文將介紹編譯的含義;執(zhí)行計劃重用的利弊以及重編譯的發(fā)生場景等等,為您學習SQLSERVER編譯與重編譯打下很好的基礎(chǔ),感興趣的朋友可以了解下2013-01-01
SQLServer 2008 CDC功能實現(xiàn)數(shù)據(jù)變更捕獲腳本
這篇文章主要介紹了使用SQLServer 2008的CDC功能實現(xiàn)數(shù)據(jù)變更捕獲的腳本,大家參考使用2013-11-11
SQL Server 索引結(jié)構(gòu)及其使用(二) 改善SQL語句
很多人不知道SQL語句在SQL SERVER中是如何執(zhí)行的,他們擔心自己所寫的SQL語句會被SQL SERVER誤解。2009-04-04
SQLServer2008R2版安裝和測試的實現(xiàn)
本文主要介紹了在Windows10上安裝和配置SQL?Server?2008R2,內(nèi)容涵蓋了安裝過程中的注意事項,如安裝.NET?Framework?3.5、處理遠程過程調(diào)用失敗等常見問題,感興趣的可以了解一下2024-12-12

