適用対象:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Microsoft Fabric の SQL 分析エンドポイント
Microsoft Fabric のウェアハウス
Microsoft Fabric の SQL データベース
sys.sp_refreshviewシステムのストアドプロシージャは、指定された非スキーマバウンドビューのメタデータを更新します。 ビューが依存する基になるオブジェクトが変更されたため、ビューの永続的なメタデータが古くなる可能性があります。
構文
sys.sp_refreshview [ @viewname = ] N'viewname'
[ ; ]
引数
[ @viewname = ] N'viewname'
ビューの名前です。 @viewname は nvarchar で、既定値はありません。 @viewname マルチパート識別子を指定できますが、現在のデータベース内のビューのみを参照できます。
リターン コードの値
0 (成功) または 0 以外の数値 (失敗)
解説
SCHEMABINDINGでビューを作成していない場合は、ビューの定義に影響を与えるオブジェクトの変更を加えたときにsp_refreshviewを実行してください。 そうしないと、クエリ時に予期しない結果が返ってくるかもしれません。
アクセス許可
ビューに対する権限 ALTER 、ビューカラムが参照する共通言語ランタイム(CLR)ユーザー定義型およびXMLスキーマコレクションに対する権限 REFERENCES 必要です。
例
この記事のコードサンプルは、AdventureWorks2025、AdventureWorksDW2025、またはAdventureWorksLT2025サンプルデータベースを使用しており、Azure Data SQL Samples Repository GitHubリポジトリからダウンロードできます。
A。 ビューのメタデータを更新する
次の例では、ビュー Sales.vIndividualCustomer のメタデータを更新します。
USE AdventureWorks2025;
GO
EXECUTE sp_refreshview N'Sales.vIndividualCustomer';
B. 変更されたオブジェクトに依存するすべてのビューを更新するスクリプトを作成する
表 Person.Person が変更され、その上のあらゆるビューの定義に影響を与えると仮定します。 以下の例は、テーブル Person.Personに依存するすべてのビューのメタデータを更新するスクリプトを作成します。
USE AdventureWorks2025;
GO
SELECT DISTINCT 'EXECUTE 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');