sp_refreshview (TRANSACT-SQL)sp_refreshview (Transact-SQL)

適用対象: yesSQL Server noAzure SQL Database noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse APPLIES TO: yesSQL Server noAzure SQL Database noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse

指定された非スキーマ バインド ビューのメタデータを更新します。Updates the metadata for the specified non-schema-bound view. ビューのメタデータを永続的なは、ビューが依存している基になるオブジェクトが変更されたのため、古くなることができます。Persistent metadata for a view can become outdated because of changes to the underlying objects upon which the view depends.

トピック リンク アイコン Transact-SQL 構文表記規則Topic link icon Transact-SQL Syntax Conventions


sp_refreshview [ @viewname = ] 'viewname'   


[ @viewname = ] 'viewname' ビューの名前です。[ @viewname = ] 'viewname' Is the name of the view. viewnamenvarchar、既定値はありません。viewname is nvarchar, with no default. viewname 、マルチパート識別子を指定できますが、現在のデータベース内のビューに参照できるのみです。viewname can be a multipart identifier, but can only refer to views in the current database.

リターン コードの値Return Code Values

0 (成功) または 0 以外の値の数 (失敗)0 (success) or a nonzero number (failure)


ビューは、schemabinding を指定して作成されていない場合sp_refreshviewビューの定義に影響を与える、ビューの基になるオブジェクトに変更されたときに実行する必要があります。If a view is not created with schemabinding, sp_refreshview should be run when changes are made to the objects underlying the view that affect the definition of the view. それ以外の場合、ビューは、クエリが実行時に、予期しない結果を生成可能性があります。Otherwise, the view might produce unexpected results when it is queried.


ビューに対する ALTER 権限と、共通言語ランタイム (CLR) ユーザー定義型およびビュー列で参照される XML スキーマ コレクションに対する REFERENCES 権限が必要です。Requires ALTER permission on the view and REFERENCES permission on common language runtime (CLR) user-defined types and XML schema collections that are referenced by the view columns.


A.A. ビューのメタデータの更新Updating the metadata of a view

次の例では、ビュー Sales.vIndividualCustomer のメタデータを更新します。The following example refreshes the metadata for the view Sales.vIndividualCustomer.

USE AdventureWorks2012;  
EXECUTE sp_refreshview N'Sales.vIndividualCustomer';  

B.B. 変更されたオブジェクトに対する依存関係のあるすべてのビューを更新するスクリプトの作成Creating a script that updates all views that have dependencies on a changed object

テーブル Person.Person に対して作成された任意のビューの定義に影響を与える形で、このテーブルが変更されたとします。Assume that the table Person.Person was changed in a way that would affect the definition of any views that are created on it. 次の例では、テーブル Person.Person に対する依存関係があるすべてのビューについて、メタデータを更新するスクリプトを作成しています。The following example creates a script that refreshes the metadata for all views that have a dependency on table Person.Person.

USE AdventureWorks2012;  
SELECT DISTINCT 'EXEC sp_refreshview ''' + name + ''''   
FROM sys.objects AS so   
INNER JOIN sys.sql_expression_dependencies AS sed   
    ON so.object_id = sed.referencing_id   
WHERE so.type = 'V' AND sed.referenced_id = OBJECT_ID('Person.Person');  

関連項目See Also

データベース エンジン ストアド プロシージャ(TRANSACT-SQL) Database Engine Stored Procedures (Transact-SQL)
システム ストアド プロシージャ (Transact-SQL) System Stored Procedures (Transact-SQL)
sys.sql_expression_dependencies (Transact-SQL) sys.sql_expression_dependencies (Transact-SQL)
sp_refreshsqlmodule (TRANSACT-SQL)sp_refreshsqlmodule (Transact-SQL)