共用方式為


sp_refreshview (Transact-SQL)

更新: 2006 年 4 月 14 日

更新指定非結構描述繫結檢視的中繼資料。檢視所依賴的基礎物件變更之後,檢視的保存中繼資料也可能會過期。

主題連結圖示Transact-SQL 語法慣例

語法

sp_refreshview [ @viewname = ] 'viewname' 

引數

  • [ @viewname=] 'viewname'
    這是檢視的名稱。viewnamenvarchar,沒有預設值。viewname 可以是多部份組成的識別碼,但只能是目前資料庫中的檢視。

傳回碼值

0 (成功) 或非零值 (失敗)

備註

如果未以 schemabinding 來建立檢視,當影響檢視定義的檢視之下的物件有變更時,就應該執行 sp_refreshview。否則,在查詢檢視時,可能會產生非預期的結果。

權限

必須對檢視具備 ALTER 權限,以及對檢視資料行所參考的 Common Language Runtime (CLR) 使用者自訂類型和 XML 結構描述集合,具備 REFERENCES 權限。

範例

A. 更新檢視的中繼資料

下列範例會重新整理 Sales.vIndividualCustomer 檢視的中繼資料。

USE AdventureWorks;
GO
exec sp_refreshview N'Sales.vIndividualCustomer';

B. 建立可更新所有對於已變更物件具有相依性之檢視的指令碼

假設資料表 Person.Contact 是以會影響在任何檢視上建立的定義之方式來變更。下列範例建立了一個指令碼,針對所有對資料表 Person.Contact 有相依性的檢視來重新整理中繼資料。

USE AdventureWorks;
GO
SELECT DISTINCT 'EXEC sp_refreshview ''' + name + '''' 
FROM sys.objects so INNER JOIN sys.sql_dependencies sd 
ON so.object_id = sd.object_id 
WHERE type = 'V' 
AND sd.referenced_major_id = object_id('Person.Contact') 

請參閱

參考

Database Engine 預存程序 (Transact-SQL)
系統預存程序 (Transact-SQL)

說明及資訊

取得 SQL Server 2005 協助

變更歷程記錄

版本 歷程記錄

2006 年 4 月 14 日

新增內容:
  • 加入「備註」一節,以釐清使用 sp_refreshview 的理由。
  • 加入範例 B。
變更的內容:
  • 更新範例 A。