적용 대상:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Microsoft Fabric의 SQL 데이터베이스
지정된 스키마 바인딩되지 않은 뷰에 대한 메타데이터를 업데이트합니다. 뷰가 종속된 기본 개체가 변경되면 뷰의 영구 메타데이터가 최신 상태를 유지하지 못할 수 있습니다.
구문
sp_refreshview [ @viewname = ] 'viewname'
[ ; ]
인수
[ @viewname = ] '뷰네임'
보기의 이름입니다. @viewname 기본값이 없는 nvarchar입니다. @viewname 다중 파트 식별자일 수 있지만 현재 데이터베이스의 뷰만 참조할 수 있습니다.
반환 코드 값
0(성공) 또는 0이 아닌 숫자(실패).
설명
뷰가 생성 SCHEMABINDINGsp_refreshview 되지 않은 경우, 뷰의 정의에 영향을 주는 객체에 변경이 있을 때 실행해야 합니다. 그렇지 않으면 뷰를 쿼리할 때 예상치 못한 결과가 나올 수 있습니다.
사용 권한
뷰에 대한 권한과 ALTER 뷰 열이 참조하는 공통 언어 런타임(CLR) 사용자 정의 타입 및 XML 스키마 컬렉션에 대한 권한이 필요합니다REFERENCES.
예제
이 문서의 코드 샘플은 AdventureWorks2025 또는 AdventureWorksDW2025 샘플 데이터베이스를 사용합니다. 이 데이터베이스는 Microsoft SQL Server 샘플 및 커뮤니티 프로젝트 홈페이지에서 다운로드할 수 있습니다.
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');