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

Применимо к:Applies to: даSQL ServerSQL Server (все поддерживаемые версии) yesSQL ServerSQL Server (all supported versions) Применимо к:Applies to: даSQL ServerSQL Server (все поддерживаемые версии) yesSQL ServerSQL Server (all supported versions)

Обновляет метаданные для заданного, не привязанного к схеме, представления.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-SQLTopic link icon Transact-SQL Syntax Conventions

СинтаксисSyntax

  
sp_refreshview [ @viewname = ] 'viewname'   

АргументыArguments

[ @viewname = ] 'viewname' Имя представления.[ @viewname = ] 'viewname' Is the name of the view. ViewName имеет тип nvarchar и не имеет значения по умолчанию.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 (success) or a nonzero number (failure)

ЗамечанияRemarks

Если представление не создано с параметром 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.

РазрешенияPermissions

Требуются разрешение ALTER для представления и разрешение REFERENCES для определяемых пользователями типов данных среды CLR и коллекций XML-схем, на которые ссылаются столбцы представления.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.

ПримерыExamples

A.A. Обновление метаданных представленияUpdating the metadata of a view

В следующем примере выполняется обновление метаданных представления Sales.vIndividualCustomer.The following example refreshes the metadata for the view Sales.vIndividualCustomer.

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

Б.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;  
GO  
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)