다음을 통해 공유


sp_refreshview(Transact-SQL)

업데이트: 2006년 4월 14일

스키마 바인딩되지 않은 지정된 뷰의 메타데이터를 업데이트합니다. 뷰가 종속된 기본 개체가 변경되면 뷰의 영구 메타데이터가 최신 상태를 유지하지 못할 수 있습니다.

항목 링크 아이콘Transact-SQL 구문 표기 규칙

구문

sp_refreshview [ @viewname = ] 'viewname' 

인수

  • [ @viewname= ] 'viewname'
    뷰의 이름입니다. viewnamenvarchar이며 기본값은 없습니다. viewname은 다중 부분 식별자가 될 수 있지만 현재 데이터베이스의 뷰만 참조할 수 있습니다.

반환 코드 값

0(성공) 또는 0이 아닌 수(실패)

주의

스키마 바인딩을 사용하여 뷰를 만들지 않은 경우 뷰의 기반이 되는 개체에 대한 변경 내용이 뷰의 정의에 영향을 주면 sp_refreshview를 실행해야 합니다. 그렇지 않으면 뷰를 쿼리할 때 예기치 않은 결과가 발생할 수 있습니다.

사용 권한

뷰에 대한 ALTER 권한이 필요하고 뷰 열이 참조하는 CLR(공용 언어 런타임) 사용자 정의 형식 및 XML 스키마 컬렉션에 대한 REFERENCES 권한이 필요합니다.

1. 뷰의 메타데이터 업데이트

다음 예에서는 Sales.vIndividualCustomer 뷰의 메타데이터를 새로 고칩니다.

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

2. 변경한 개체에 대해 종속성이 있는 뷰를 모두 업데이트하는 스크립트 만들기

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') 

참고 항목

참조

데이터베이스 엔진 저장 프로시저(Transact-SQL)
시스템 저장 프로시저(Transact-SQL)

도움말 및 정보

SQL Server 2005 지원 받기

변경 내역

릴리스 내역

2006년 4월 14일

새로운 내용
  • sp_refreshview의 사용 이유를 명확하게 설명하기 위해 주의 섹션을 추가했습니다.
  • 예 2를 추가했습니다.
변경된 내용
  • 예 1을 업데이트했습니다.