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)
sql_expression_dependencies (Transact-sql) sys.sql_expression_dependencies (Transact-SQL)
sp_refreshsqlmodule (Transact-sql)sp_refreshsqlmodule (Transact-SQL)